springboot集成albaba-nacos(含dubbo集成)

 

pom.xml依赖引入

统一定义版本号
spring-cloud-alibaba
version:2.2.5.RELEASE
spring-cloud版本号
version:2020.0.1

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap -->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

yml配置

--yml配置--
###配置文件###
spring:
  application:
    name: 定义项目名称
  cloud:
    nacos:
      discovery:
        enabled: false #是否启用服务发现
      config:
        server-addr: http://ip地址:端口(部署的naoc服务的地址)
        namespace: 7a2f39fb-8279-4560-b88f-ecefbe7a039c
        #应用配置: ${spring.application.name}.file-extension
        file-extension: yml
        #附加配置--附加引入其他yml配置
        extension-configs:
          - dataId: jdbc.yml
          - dataId: redis.yml
          - dataId: third-util-config.yml
          - dataId: dubbo.yml

分环境部署

方式1:(基于spring的分环境配置方式)

###按环境区分配置中心###
---
spring:
  config:
    activate:
      on-profile: dev
  cloud:
    nacos:
      config:
        server-addr: http://ip地址:8848
        namespace: 7a2f39fb-8279-4560-b88f-ecefbe7a039c

---
spring:
  config:
    activate:
      on-profile: uat
  cloud:
    nacos:
      config:
        server-addr: http://ip地址:8848
        namespace: eec62b5c-9eac-4612-bbab-97553fa08cf4

---
spring:
  config:
    activate:
      on-profile: prd
  cloud:
    nacos:
      config:
        server-addr: http://ip地址:8848
        namespace: 7a2f39fb-8279-4560-b88f-ecefbe7a039c
#关键字是on-profile,这个就把环境参数先定义好,到时候启动的时候例如
-Dspring.profiles.active=prd 就相当于激活了prd下面的参数配置

方式2:基于maven参数+yml方式


yml配置文件
这个使用符合@参数@
env表示maven配置里面定义的属性,这里使用
<properties>
	<env>dev</env>
	<!--nacos配置namespace-->
	<nacos-namespace>051a75fd-1840-41f2-9756-33c3c77e56b6</nacos-namespace>
	<nacos-url>http://xxx:8848</nacos-url>
</properties>

spring:
  profiles:
    active: @env@


spring:
  application:
    name: manage
  cloud:
    nacos:
      config:
        namespace: @nacos-namespace@ #这个通env原理一样
        server-addr: @nacos-url@
        file-extension: yml
        extension-configs:
          - dataId: jdbc.yml
          - dataId: redis.yml
          - dataId: application.yml
          - dataId: dubbo.yml
          - dataId: rabbitmq.yml
          - dataId: mongo.yml
          - dataId: ysy.yml
            refresh: true
#${spring.profiles.active}就相当于使用yml的属性spring.profiles.active=dev,因为dev是从maven配置里面属性env读出来的
logging:
  file:
    name: /var/log/logs/${spring.profiles.active}/manage/debug.log

jdbc.yml配置

#数据源
spring:
  datasource:
    hikari:
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: 数据账号
      password: 密码
      url: jdbc:mysql://ip地址:3316/数据库名称?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&tinyInt1isBit=false

redis.yml配置

Spring:
  redis:
    host: 连接ip地址
    port: 6392端口号
    password: 连接密码
    ##连接池(其他参数配置)
    lettuce:
      pool:
        ##最大连接数
        max-active: 8
        #最大和最小空闲连接
        max-idle: 4
        min-idle: 0
        ##连接的最大等待阻塞的时间
        max-wait: 10000

dubbo.yml配置  基于远程RPC调用

dubbo:
  registry:
    #协议类型,这里使用的注册中心是nacos
    protocol: nacos
    #注册地址---ip地址:端口号?namespace=nacos命名空间的ID
    address: ip地址:8848?namespace=eec62b5c-9eac-4612-bbab-97553fa08cf4
  #服务提供者协议
  protocol:
    name: dubbo         #协议名称
    threadpool: cached  #线程池类型(fixed,cached,limited,eager)
    corethreads: 10     #初始线程数
    threads: 200        #最大线程数
    accesslog: false    #不记录dubbo访问日志
    accepts: 1000       #最大服务连接数
    charset: UTF-8      #序列化编码
    dispatcher: message
    port: 20880
  #配置服务提供方参数,服务消费方默认使用服务提供方的配置
  provider:
    protocol: dubbo     #协议名称
    timeout: 10000        #超时时间(ms)
    retries: 2          #重试次数
    loadbalance: random #负载均衡算法

官方地址参考:https://nacos.io/zh-cn/docs/use-nacos-with-dubbo.html

如何开启dubbo

在程序启动类添加注解

@EnableDubbo
pom.xml依赖加入
dubbo依赖支持
<dependency>
	<groupId>org.apache.dubbo</groupId>
	<artifactId>dubbo-spring-boot-starter</artifactId>
	<version>${dubbo.version}</version>
</dependency>

服务提供者和服务消费者及使用

【服务端--提供者】
import org.apache.dubbo.config.annotation.DubboService;

@DubboService//声明这是一个dubbo服务,到时候会注册到服务注册中心去
@Service
public class xxxService implements IxxxRpcService {


}


【客户端-使用者】
跟引用service一样
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
	@DubboReference(check = false)
	private IxxxRpcService xxxService;
	//这个是spring其他bean
	@Autowired
    private IJobService jobService;
	
	@Override
    
    public void doMethod() {
       
        //直接调用接口里面的方法就好了。这个是是基于dubbo的RPC远程调用
        FaceInfoVo faceInfo = xxxService.getFaceInfo();
		
	}
}

总结:
1、服务提供者,需要加上注解@DubboService  在接口实现类
2、服务消费者,在使用的地方加上注解@DubboReference,表示引用某个dubbo服务

nacos运行效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值