Spring Cloud Alibaba 综合集成架构演示,五步搞定Java开发环境部署

当 Service1Bootstrap 启动后,应用 application1 将出现在 Nacos 控制台界面。

5、实现 Service1

============================================================================

5.1、定义父工程


定义service1父工程,pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

nacos‐micro‐service

com.demo.nacos

1.0-SNAPSHOT

4.0.0

service‐1

pom

service‐1‐api

service‐1‐server

5.2 定义service-1-api


为了方便其它服务调用dubbo服务,专门定义api工程,此工程将作为jar被其它工程依赖。

定义service-1-api工程,pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

service‐1

com.demo.nacos

1.0-SNAPSHOT

4.0.0

service‐1‐api

定义服务接口:

package com.demo.microservice.service1.api;

/**

  • Description:

  • DATE: 2022/1/27 11:09

*/

public interface ConsumerService {

public String service();

}

5.3、实现service-1-server


(1)初始化 service-1-server Maven 工程

与服务提供方 Maven工程类似,需添加相关 Maven 依赖:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns=“http://maven.apache.org/POM/4.0.0”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

service‐1

com.demo.nacos

1.0-SNAPSHOT

4.0.0

service‐1‐server

com.demo.nacos

service‐1‐api

1.0-SNAPSHOT

com.demo.nacos

service‐2‐api

1.0-SNAPSHOT

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-config

com.alibaba.cloud

spring-cloud-starter-dubbo

(2)实现 Dubbo 服务

package com.demo.microservice.service1.service;

import com.demo.microservice.service1.api.ConsumerService;

import com.demo.microservice.service2.api.ProviderService;

/**

  • Description:

  • DATE: 2022/1/27 11:13

*/

@org.apache.dubbo.config.annotation.Service

public class ConsumerServiceImpl implements ConsumerService {

@org.apache.dubbo.config.annotation.Reference

ProviderService providerService;

@Override

public String service() {

String service = providerService.service();

return “Consumer invoke |”+service;

}

}

注意:使用@org.apache.dubbo.config.annotation.Service标记dubbo服务

(3)配置 Dubbo 服务

Service2 作为Dubbo服务消费方配置与服务提供方类似,注意,service1不仅是消费方,同时还是服务提供方:

server:

port: ${port:56030} #启动端口 命令行注入

spring:

application:

name: service1

main:

allow‐bean‐definition‐overriding: true # Spring Boot 2.1 需要设定

cloud:

nacos:

discovery:

server‐addr: 127.0.0.1:8848

namespace: 20dd9cd5-8ce6-4f73-8380-dfa3074ce5a8

cluster‐name: DEFAULT

config:

server‐addr: 127.0.0.1:8848 # 配置中心地址

file‐extension: yaml

namespace: 20dd9cd5-8ce6-4f73-8380-dfa3074ce5a8 # 开发环境

group: NACOS_MICROSERVICE_GROUP # xx业务

dubbo:

scan:

dubbo 服务扫描基准包

base‐packages: com.demo.microservice

<
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Kubernetes上部署Spring Cloud Alibaba的最佳架构图可以采用以下架构: ![k8s-spring-cloud-alibaba](https://user-images.githubusercontent.com/40435982/136495662-4f20be45-0e55-4f91-bc54-9a399d9dd9b5.png) 该架构图中,我们使用Kubernetes作为容器编排平台,通过使用Kubernetes的Service来实现服务间的通信。同时,我们使用Spring Cloud Alibaba的组件来提供服务注册、配置管理、负载均衡等功能。 具体来说,架构图中包括以下组件: - Kubernetes:容器编排平台,用于管理容器资源和服务的部署、扩展、升级、回滚等操作。 - Service Mesh:用于管理服务间的通信、流量控制、故障熔断等。 - Spring Cloud Alibaba:提供多个组件来实现微服务开发和管理。 - Nacos:服务注册与发现中心,用于管理服务的注册、发现、配置等。 - Sentinel:流量控制和熔断降级组件,用于保护服务的稳定性和可用性。 - Alibaba Cloud OSS:对象存储服务,用于存储和管理文件、图片等静态资源。 - MySQL:关系型数据库,用于存储业务数据。 - Redis:键值数据库,用于存储缓存和分布式锁等。 在该架构中,Spring Cloud Alibaba的各个组件都可以部署在Kubernetes集群中,通过Service Mesh进行服务间的通信和管理。同时,我们还可以使用Kubernetes的资源管理、自动伸缩等功能来优化系统的性能和可用性。 总之,该架构图提供了一个完整的、可扩展的微服务架构方案,适用于大型企业级应用的开发部署

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值