dubbo yml配置_SpringCloud alibaba:从基础配置到打包带走

开始今天的内容之前,我想问大家一个问题,前面写的一篇文章,简单的搭建了一个微服务的框架,下面有一个粉丝问了一个问题

921ac8ec097fdd5a4d552c194550240d.png

问题:dubbo服务注册在nacos上时,配置列表会生成大量dubbo接口的配置,这个请问怎么解决?

说实话,我想了半天没想明白怎么回事,因为在我的印象中,单纯的框架是不检查端口安全性的,所以平时在用的时候,我就默认他是安全的,然后剩下的我就交给老大了,老大说啥我就是啥,还真的没看过这个地方(不小心透露了自己的小白特质,管他呢,不耻下问了),希望懂得各位能帮忙回答一下,谢谢各位

项目技术选型

  • Spring Boot
  • Spring MVC
  • MyBatis + 通用Mapper
  • Spring Cloud Alibaba

项目结构

3059487d2f3cdae90bcb984d65d65b5b.png

pom 文件

<?xml version="1.0" encoding="UTF-8"?>4.0.0org.springframework.boot        spring-boot-starter-parent        2.1.9.RELEASEcom.laiya    user-center    0.0.1-SNAPSHOTuser-centerDemo project for Spring Boot1.8org.springframework.boot            spring-boot-starter-web        com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery        org.springframework.cloud            spring-cloud-starter-openfeign        io.github.openfeign            feign-httpclient        mysql            mysql-connector-java        org.mybatis.spring.boot            mybatis-spring-boot-starter            2.1.2org.projectlombok            lombok            trueorg.springframework.boot            spring-boot-starter-thymeleaf        org.springframework.boot            spring-boot-starter-websocket        org.springframework.boot            spring-boot-starter-test            testorg.junit.vintage                    junit-vintage-engine                org.springframework            spring-websocket            5.2.6.RELEASEorg.springframework.cloud            spring-cloud-starter-zipkin        org.springframework.boot            spring-boot-starter-actuator        com.alibaba.cloud            spring-cloud-alibaba-sentinel        org.springframework.cloud                spring-cloud-dependencies                Greenwich.SR3pomimportcom.alibaba.cloud                spring-cloud-alibaba-dependencies                2.1.0.RELEASEpomimportdev                            true                        devtest                            false                        testpro                            false                        proorg.springframework.boot                spring-boot-maven-plugin                mysql                        mysql-connector-java                        8.0.16org.apache.maven.plugins                maven-compiler-plugin                88${project.artifactId}-${environment}-${project.version}src/main/resourcestrueapplication.ymlapplication-${environment}.ymlbootstrap.ymlmybatis/*/*.xmltemplates/*.htmlstatic/

pom 里配置了多环境打包,openfeign,zipkin,actuator,sentinel,websocket,lombok 等组件下面对这些组件

  • openfeign 是用来为微服务架构下服务之间的调用提供了解决方案,可以理解为被封装的请求模式。
  • zipkin 是用来做链路跟踪的工具,是一个开放源代码分布式的跟踪系统,每个服务向zipkin报告计时数据,zipkin会根据调用关系通过Zipkin UI生成依赖关系图(以后的博客里会将)
  • actuator 是用来做应用的健康检查,Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。
  • sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。
  • websocket 全双工通讯协议,可简单理解为服务端可以主动向客户端发送请求

实现多环境打包需要配置多个*.yml 配置文件,配置文件

  • application.yml 内容
spring:  profiles:    active: "@environment@"

application-dev内容

#======================================##========== Server settings ==========##======================================#server:  port: 8086  #  servlet:  #    context-path: /user-center  tomcat:    uri-encoding: UTF-8spring:  #server name  application:    name: user-center  #======================================#  #========== Database settings ==========#  #======================================#  datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    username:     password: xxxxx    url: jxxxxx    #======================================#    #========== Nacos ==========#    #======================================#  cloud:    nacos:      discovery:        # nacos server address        server-addr: xxxx  thymeleaf:    prefix: classpath:/templates/    check-template-location: true    suffix: .html    encoding: utf-8    servlet:      content-type: text/html    mode: HTML5    cache: false  #======================================#  #========== zipkin ==========#  #======================================#  zipkin:    base-url:xxx    discovery-client-enabled: false  sleuth:    sampler:      #      抽样率 10%      probability: 1.0#======================================##========== MyBatis settings ==========##======================================#mybatis:  mapper-locations: classpath:templates/*/*.xml  #======================================#  #========== Redis settings ==========#  #======================================##  redis:#    enabled: true#    host: xxx#    port: 6379#    ssl: false#    database: 0#    password: x'x'x'x#    jedis:#      pool:#        # 最大空闲连接数#        maxIdle: 3#        # 最大活动连接数#        maxActive: 20feign:  client:    config:      #      想要配置的微服务 名称    全局配置 default      user-center:        loggerLevel: full  #        httpclient  连接池  httpclient:    enabled: true    #    feign 的最大连接数    max-connections: 200    #    feign 的单个路径最大连接数    max-connections-per-route: 50#======================================##========== Config sttings ==========##======================================##body:  controllerMethodList:    swaggerResources,    getDocumentationmanagement:  endpoints:    web:      exposure:        include: '*'

mysql 配置信息说明

 datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    username:     password: xxxxx    url: jxxxxx

mysql 版本>= 6.x 需要用 com.mysql.cj.jdbc.Driver
mysql 版本<= 5.x 需要用 com.mysql.jdbc.Driver
** com.mysql.jdbc.Driver 源码 如下**

public class Driver extends com.mysql.cj.jdbc.Driver {    public Driver() throws SQLException {        super();    }    static {        System.err.println("Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. "                + "The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.");    }}

通过源码我们可以看到 Driver 继承了 com.mysql.cj.jdbc.Driver,如果不加 cj 项目也可以运行但是会打印出一句警告的话,大概意思是说驱动版本需要升级
所以在出现这句话的时候大家不要慌。

另外需要注意的是在为应用起名字的时候尽量不要用_ 和特殊字符,可以用-,否则在启动的时候会打印出警告

针对微服务,我们在新增微服务组件的时候尽量遵循三个步骤
1 pom 文件引入依赖
2 yml 写配置
3 项目加注解

用户微服务引入Nacos 步骤

  • 引入依赖
           com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery        
  • yml写配置
    #=========================#    #========== Nacos =========#    #=========================#spring:  cloud:    nacos:      discovery:        server-addr: (nacos 请求地址,格式为 ip[域名]:port; 例如 xxx.com:8848,注意 地址前面不要加http 后者https)         # namespace: (Nacos 命名空间的uuid  不是名称)        # cluster-name: xxx
  • 项目加注解(没有注解,不需要)
    ** 启动当前项目后,成功后会先发现Nacos 控制台服务管理里会有一个user-center 的服务**至此 微服务注册到Nacos 便成功了,我们发现服务注册很简单,只需要简单的两步,加依赖,写配置针对不同环境打包的命令为 mvn install -Ppro/-Pdev/-Ptest,需要哪个环境就打哪个环境的包
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值