我的第一个正式的Java后端程序(二)

  • 欢迎关注我的公众号
    公众号
  • 开发背景,公司新零售终端Pos系统从有赞战略转换为美团,但是门店还是原来的门店,但是我的大爷就不是原来的大爷,撸起袖子开干

  • 期间我们物业方吹得有点紧,哈哈,这次主要原因是我太忙了,我要画原型图、要开发Pos系统、要升级店铺工具,使用内置打印机、要去新门店装机器、有时候还得关心门店的物料问题,最可怕我还得和供应商联系采购硬件设备,所以啊对不住,在博客里面说,所以一直拖着,真的是太忙了
    image.png

创建工程

  • 我犯了一个小小的错误,创建的工程名为pp.id=retail-push-order-pafc 这种格式的,但是我在远端的工程创建了这样的格式pp.id=retail-pushorder-pafc,这样就会在第一次会给第一次创建Jenkins索引的时候找不到,就会创建jar失败。希望下次注意
  • 代码和以前差不多,唯一不同的区别就是通过mq来接受消息,然后我处理每一条消息然后组装成新的Json然后给推送过去,其他具体的可以看第一个工程 的第一个正式的Java后端程序(一),在这里我只写不同的地方
  • 需要加的东西
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #rocketmq
    rocketmq.namesrv-addr=
    #zookeeper
    elasticjob.zk.serverLists
    eureka.client.serviceUrl.defaultZone

    #其他的配置
    spring.application.name=retail-pushorder-pafc
    server.port=8194
    rocketmq.producer-group-name=retail-retail-push-order-pafc-producer
    rocketmq.consumer-group-name=retail-retail-push-order-pafc-consumer

*rocketmq 消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性 可以看这篇文章 Rocketmq原理&最佳实践

其他的Config

  • 一般使用了mq工程中肯定需要一个公用配置,这样才能使用
  • 由于需要测试id和正式id不一样,而且我还不能去经常改动代码,所以需要一个WebConfig去判断目前在那个环境下,这样同一套代码就可以在联调环境和正式环境使用

image.png

  • mqconsumer、producer:一个是消费者,一个生产者,目前我自己的模块就是消费者,无需生产者,但是这个消息也是其他模块给我发送过来的

  • 我们发包的流程

    • 上传代码到git厂库,合并代码到mater分支,打TagTag的格式一般是V1.0.0A01_20190312 或者是正式包 V1.0.0R01_20190312,然后告诉测试你的分支和Tag,他们构建 jar ,然后测试—上线。

遇到的问题

  • 遇到问题一:

    • 背景:vpn,去年我在做物流模块的时候,在公司的电脑,是不需要什么vpn,今年过来我还不知道这个事情,由于dev环境没有和外部联调的环境好多没有打通,导致我在dev调试不可能(就是我们收银机使用的是第三方系统的,第三方把订单给推送过来),我就必须去qa环境调试,万万没有想到,在qa环境也需要vpn,这个问题卡了我好几天,就差点卸载ide了,我肯定问了别人!
      image.png

    • 还要运维给vpn账号和密码,然后登陆上去,才可以读取qa环境的apollo的配置

  • 到这一步了
    image.png
  • 遇到问题二:qa没有日志的输出
    • 原因是我在本地的跑了项目,qa服务器也跑了项目,所以我这边没有收到,后续关闭掉项目就可以了
  • 遇到问题三:
    • 抛出一个问题 float floatPrice= 9/100; System.out.println(floatPrice);结果为0.0如果要想得到结果 那么就得 强制转换一下 float floatPrice= (float) 9/100; System.out.println(floatPrice); 我们项目中使用的是分,但是对方系统接收的元,所以需要转换一下单位,就是Java的基础知识了

image.png

  • 遇到问题四:

    • 线上环境Apollo读取不到,解决办法是在线上Apollo环境也要建一个和项目名称一样的Apollo配置,虽然我去读取的是一个通用的配置,但是也得创建这个
      image.png
  • 遇到问题五:

    • 收不到mq消息,其他配置都没有问题,那是因为需要手动创建Topic,其实它可以自动的创建,也可以手动,qa环境是自动的创建,线上环境是手动的,这个我们公司的运维还不知道,弄了几个小时,哈哈

image.png

  • 遇到问题六:
    • 把所有的消息都给推送过去了,应该有9万左右的订单数据,等Topic创建,一下就推送了全部,本来就想推送今天的订单,但是历史的订单也一下全部的推送过去了

发包上线

  • 申请上线
    image.png
  • 看到推送成功的消息,ok,收工
    image.png
  • 最后感谢勋哥和王宏大佬的鼎力帮助,还有感谢架构师老郭的指点,运维张渝的帮忙

 上一篇
Vue.js学习No.2 Vue.js学习No.2
欢迎关注我的公众号 写在前面的话,非常的重要 如果报错 123456789101112131415161718192021222324252627282930313233343536373839404142Template re
2019-03-20 Shiming_Li
下一篇 
Vue.js学习No.1 Vue.js学习No.1
欢迎关注我的公众号 Vue.js 是最火的一个前端框架,React最流行,都可以开发网站和手机App的开发,Vue需要借助Weex 前端三大主流的框架,Vue Angular React Vue是一套构建用户界面的框架,只关注视图层,
2019-03-08 Shiming_Li
  目录