美文网首页
我的第一个正式的Java后端程序(二)

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

作者: 仕明同学 | 来源:发表于2019-03-12 10:53 被阅读0次
    • 开发背景,公司新零售终端Pos系统从有赞战略转换为美团,但是门店还是原来的门店,但是我的大爷就不是原来的大爷,撸起袖子开干

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


      image.png

    创建工程

    • 我犯了一个小小的错误,创建的工程名为pp.id=retail-push-order-pafc 这种格式的,但是我在远端的工程创建了这样的格式pp.id=retail-pushorder-pafc,这样就会在第一次会给第一次创建Jenkins索引的时候找不到,就会创建jar失败。希望下次注意
    • 代码和以前差不多,唯一不同的区别就是通过mq来接受消息,然后我处理每一条消息然后组装成新的Json然后给推送过去,其他具体的可以看第一个工程 的第一个正式的Java后端程序(一),在这里我只写不同的地方
    • 需要加的东西
    #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
    • 最后感谢勋哥和王宏大佬的鼎力帮助,还有感谢架构师老郭的指点,运维张渝的帮忙

    相关文章

      网友评论

          本文标题:我的第一个正式的Java后端程序(二)

          本文链接:https://www.haomeiwen.com/subject/ugzlpqtx.html