Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.

Overview

Spring Cloud Alibaba

CircleCI Maven Central Codecov License

A project maintained by Alibaba.

See the 中文文档 for Chinese readme.

Spring Cloud Alibaba provides a one-stop solution for distributed application development. It contains all the components required to develop distributed applications, making it easy for you to develop your applications using Spring Cloud.

With Spring Cloud Alibaba, you only need to add some annotations and a small amount of configurations to connect Spring Cloud applications to the distributed solutions of Alibaba, and build a distributed application system with Alibaba middleware.

Features

  • Flow control and service degradation: Flow control for HTTP services is supported by default. You can also customize flow control and service degradation rules using annotations. The rules can be changed dynamically.
  • Service registration and discovery: Service can be registered and clients can discover the instances using Spring-managed beans, auto integration Ribbon.
  • Distributed configuration: Support for externalized configuration in a distributed system, auto refresh when configuration changes.
  • Event-driven: Support for building highly scalable event-driven microservices connected with shared messaging systems.
  • Distributed Transaction: Support for distributed transaction solution with high performance and ease of use.
  • Alibaba Cloud Object Storage: Massive, secure, low-cost, and highly reliable cloud storage services. Support for storing and accessing any type of data in any application, anytime, anywhere.
  • Alibaba Cloud SchedulerX: Accurate, highly reliable, and highly available scheduled job scheduling services with response time within seconds.
  • Alibaba Cloud SMS: A messaging service that covers the globe, Alibaba SMS provides convenient, efficient, and intelligent communication capabilities that help businesses quickly contact their customers.

For more features, please refer to Roadmap.

In addition to the above-mentioned features, for the needs of enterprise users' scenarios, Microservices Engine (MSE) of Spring Cloud Alibaba's enterprise version provides an enterprise-level microservices governance center, which includes more powerful governance capabilities such as Grayscale Release, Service Warm-up, Lossless Online and Offline and Outlier Ejection. At the same time, it also provides a variety of products and solutions such as enterprise-level Nacos registration / configuration center, enterprise-level cloud native gateway.

Components

Sentinel: Sentinel takes "traffic flow" as the breakthrough point, and provides solutions in areas such as flow control, concurrency, circuit breaking, and load protection to protect service stability.

Nacos: An easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.

RocketMQ: A distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.

Dubbo: A high-performance, Java based open source RPC framework.

Seata: A distributed transaction solution with high performance and ease of use for microservices architecture.

Alibaba Cloud ACM: An application configuration center that enables you to centralize the management of application configurations, and accomplish real-time configuration push in a distributed environment.

Alibaba Cloud OSS: An encrypted and secure cloud storage service which stores, processes and accesses massive amounts of data from anywhere in the world.

Alibaba Cloud SMS: A messaging service that covers the globe, Alibaba SMS provides convenient, efficient, and intelligent communication capabilities that help businesses quickly contact their customers.

Alibaba Cloud SchedulerX: Accurate, highly reliable, and highly available scheduled job scheduling services with response time within seconds..

For more features please refer to Roadmap.

How to build

  • 2020.0 branch: Corresponds to Spring Cloud 2020 & Spring Boot 2.4.x. JDK 1.8 or later versions are supported.
  • master branch: Corresponds to Spring Cloud Hoxton & Spring Boot 2.2.x. JDK 1.8 or later versions are supported.
  • greenwich branch: Corresponds to Spring Cloud Greenwich & Spring Boot 2.1.x. JDK 1.8 or later versions are supported.
  • finchley branch: Corresponds to Spring Cloud Finchley & Spring Boot 2.0.x. JDK 1.8 or later versions are supported.
  • 1.x branch: Corresponds to Spring Cloud Edgware & Spring Boot 1.x, JDK 1.7 or later versions are supported.

Spring Cloud uses Maven for most build-related activities, and you should be able to get off the ground quite quickly by cloning the project you are interested in and typing:

./mvnw install

How to Use

Add maven dependency

These artifacts are available from Maven Central and Spring Release repository via BOM:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.7.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

add the module in dependencies.

Reference Doc

Contents

Nacos Config

Nacos Discovery

Examples

A spring-cloud-alibaba-examples module is included in our project for you to get started with Spring Cloud Alibaba quickly. It contains an example, and you can refer to the readme file in the example project for a quick walkthrough.

Examples:

Sentinel Example

Nacos Config Example

Nacos Discovery Example

RocketMQ Example

Alibaba Cloud OSS Example

Dubbo Spring Cloud Example

Version control guidelines

The version number of the project is in the form of x.x.x, where x is a number, starting from 0, and is not limited to the range 0~9. When the project is in the incubator phase, the version number is 0.x.x.

As the interfaces and annotations of Spring Boot 1 and Spring Boot 2 have been changed significantly in the Actuator module, and spring-cloud-commons is also changed quite a lot from 1.x.x to 2.0.0, we take the same version rule as SpringBoot version number.

  • 1.5.x for Spring Boot 1.5.x
  • 2.0.x for Spring Boot 2.0.x
  • 2.1.x for Spring Boot 2.1.x
  • 2.2.x for Spring Boot 2.2.x
  • 2020.x for Spring Boot 2.4.x

Code of Conduct

This project is a sub-project of Spring Cloud, it adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].

Code Conventions and Housekeeping

None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge.

Use the Spring Framework code format conventions. If you use Eclipse you can import formatter settings using the eclipse-code-formatter.xml file from the Spring Cloud Build project. If using IntelliJ, you can use the Eclipse Code Formatter Plugin to import the same file.

Make sure all new .java files to have a simple Javadoc class comment with at least an @author tag identifying you, and preferably at least a paragraph on what the class is for.

Add the ASF license header comment to all new .java files (copy from existing files in the project)

Add yourself as an @author to the .java files that you modify substantially (more than cosmetic changes).

Add some Javadocs and, if you change the namespace, some XSD doc elements.

A few unit tests would help a lot as well —— someone has to do it.

If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project).

When writing a commit message please follow these conventions, if you are fixing an existing issue please add Fixes gh-XXXX at the end of the commit message (where XXXX is the issue number).

Contact Us

Mailing list is recommended for discussing almost anything related to spring-cloud-alibaba.

[email protected]: You can ask questions here if you encounter any problem when using or developing spring-cloud-alibaba.

Comments
  • springCloudAlibaba+dubbo+nacos环境下,重启服务提供者或先启动服务消费者后启动服务提供者的情况下,消费者有时候会出现找不到服务的问题及解决方案(In the spring cloud Alibaba + Dubbo + Nacos environment, when the service provider is restarted or the service consumer is started first and then the service provider, sometimes the consumer can not find the service when calling)

    springCloudAlibaba+dubbo+nacos环境下,重启服务提供者或先启动服务消费者后启动服务提供者的情况下,消费者有时候会出现找不到服务的问题及解决方案(In the spring cloud Alibaba + Dubbo + Nacos environment, when the service provider is restarted or the service consumer is started first and then the service provider, sometimes the consumer can not find the service when calling)

    1.问题的直接表现(The direct manifestation of the problem):

    org.apache.dubbo.rpc.RpcException: No provider available from registry localhost:9090 for service com.hxy.boot.ticket.articles.api.ArticleService on consumer 192.168.137.1 use dubbo version 2.7.8, please check status of providers(disabled, not registered or in blacklist). at org.apache.dubbo.registry.integration.RegistryDirectory.doList(RegistryDirectory.java:599) at org.apache.dubbo.rpc.cluster.directory.AbstractDirectory.list(AbstractDirectory.java:74) at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.list(AbstractClusterInvoker.java:292) at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:257) at org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor.intercept(ClusterInterceptor.java:47) at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$InterceptorInvokerNode.invoke(AbstractCluster.java:92) at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:88) at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:74)

    2.问题的直接原因(The direct cause of the problem):

    调用服务提供者时,消费者的dubbo的服务目录 org.apache.dubbo.registry.integration.RegistryDirectoryforbidden 属性 为 true,如下图: When the service provider is called, the forbidden property of org.apache.dubbo.registry.integration.RegistryDirectory is true in consumer side. as shown in the following figure:

    直接原因1

    3.问题的重现(Recurrence of the problem):

    这个问题是偶尔出现的,不容易捕捉。经过分析,在服务提供者的 org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener#onContextRefreshedEvent(ContextRefreshedEvent event) 的 31行打上断点,并且suspend模式设为 Thread,然后重启服务提供者,就会一直重现此问题。如下图: This problem occurs occasionally and is not easy to catch. After analysis, if a breakpoint is made on line 31 of the service provider's class org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener#onContextRefreshedEvent(ContextRefreshedEvent event), and the debug suspend mode is set to thread, and then the service provider is restarted, this problem will always recur. as shown in the following figure:

    问题的重现

    4.问题的根本原因(The root cause of the problem):

    问题的根本原因是spring cloud alibaba框架启动nacos自动服务注册的时点比启动dubbo服务注册的时点早。前者的启动时点是监听到WebServerInitializedEvent事件时(org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration#bind(WebServerInitializedEvent event)),后者的启动时点是监听到ContextRefreshedEvent事件时(org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener#onContextRefreshedEvent(ContextRefreshedEvent event))。

    The root cause of the problem is that the 'spring cloud Alibaba' framework starts Nacos automatic service registration earlier than Dubbo service registration. The starting time of the former is when the 'webserver initialized event' event (org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration#bind(WebServerInitializedEvent event)) is heard, while the latter is when the 'contextrefreshedevent' event (org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener#onContextRefreshedEvent(ContextRefreshedEvent event)) is monitored.

    spring boot 2.2.xServletWebServerInitializedEvent事件的发布是在ContextRefreshedEvent事件之后,如图: In 'spring boot 2.2. X', the 'servlet webserver initialized event' event is published after the 'contextrefreshedevent' event, as shown in the following figure:

    springboot2 2 x

    但在 spring boot 2.3.x 中改在了ContextRefreshedEvent事件前,如图: However, in 'spring boot 2.3. X', it is changed before the 'contextrefreshedevent' event, as shown in the following figure:

    springboot2 3 x

    nacos服务端在处理了服务提供者的注册请求后向订阅者下发了实例变更通知,而在这个过程中提供者自身的dubbo服务暴露有可能还没有完成,最直接的表现就是服务提供者的 com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepositoryallExportedURLs属性中还没有对应的dubbo服务的URL。 After processing the registration request of the service provider, the Nacos server sends an instance change notice to the subscriber. In this process, the provider's own Dubbo service exposure may not be completed, and the most direct performance is that: the allexportedurls property of class com.alibaba.cloud.dubbo.metadata.repository.Dubboservicemetadatarepository has no URL for the corresponding Dubbo service.

    在第3条的问题重现里面,当程序跑到断点的时候,通过jprofiler查看此时的堆栈信息,可以看到allExportedURLs属性中没有期望的值。 In the problem recurrence in Item 3, when the program runs to a breakpoint, check the stack information through the 'jpprofiler'. You can see that there is no expected value in the 'allexportedurls' attribute.

    因为spring cloud alibaba + dubbo 中dubbo的服务是暴露在本地的com.alibaba.cloud.dubbo.metadata.repository.DubboServiceMetadataRepository中的 allExportedURLs 属性中,不会传到注册中心服务端。所以最终暴露完成以后,nacos服务端无法感知到dubbo服务是否已准备妥当,也无法通知订阅者。这种情况下,提供者发起调用时通过泛化调用DubboMetadataService接口获取提供者暴露的服务时,从 allExportedURLs 中获取到的就是一个空的 List<Url>。然后消费者就会以为是没有提供者,于是在自己本地的dubbo服务目录 RegistryDirectory 中 把禁用属性 forbidden 的值更新为了 true。 Because Dubbo's services in spring cloud Alibaba + Dubbo are exposed locally in allexportedurls property of the class com.alibaba.cloud . dubbo.metadata.repository.Dubboservicemetadatarepository. will not be transferred to the registry server.Therefore, after the final exposure is completed, the Nacos server cannot perceive whether the Dubbo service is ready or not, and cannot notify the subscriber.In this case, when a provider initiates a call to obtain the services exposed by the provider through a generalized call to the dubbometadataservice interface, an empty list < URL > is obtained from allexportedurls.Then, the consumer will think that there is no provider, so they update the value of disabled attribute forbidden to true in their local Dubbo service directory registrydirectory.

    这时消费者调用提供者时就出现了第1条中的问题。 At this time, the problem in Article 1 arises when the consumer calls the provider.

    5.1 应用端解决方案(Application side solutions):

    • 应用启动后,在 ApplicationRunner接口的run方法中,调用 springCloudAlibaba框架中的 NacosServiceRegistry类的setStatus 方法,更新一下在注册中心的实例状态: After the application is started, in the run method of the Applicationrunner interface, call the setstatus method of the Nacosserviceregistry class in the springcloudalibaba framework to update the instance status in the registry server.

    ` @Component public class NacosServiceInstanceUpAndDownOperator implements ApplicationRunner, Closeable { protected Logger logger = LoggerFactory.getLogger(this.getClass());

    /**
     * nacos服务实例上线
     */
    private static final String OPERATOR_UP = "UP";
    /**
     * nacos服务实例下线
     */
    private static final String OPERATOR_DOWN = "DOWN";
    
    @Autowired
    NacosServiceRegistry nacosServiceRegistry;
    
    @Autowired
    NacosRegistration nacosRegistration;
    
    private ScheduledExecutorService executorService;
    
    
    @PostConstruct
    public void init() {
        int poolSize = 1;
        this.executorService = new ScheduledThreadPoolExecutor(poolSize, new ThreadFactory() {
            @Override
            public Thread newThread(Runnable r) {
                Thread thread = new Thread(r);
                thread.setDaemon(true);
                thread.setName("NacosServiceInstanceUpAndDownOperator");
                return thread;
            }
        });
    }
    
    
    @Override
    public void run(ApplicationArguments args) throws Exception {
        long delay_down = 5000L;  //下线任务延迟
        long delay_up = 10000L;   // 上线任务延迟
        this.executorService.schedule(new InstanceDownAndUpTask(nacosServiceRegistry, nacosRegistration, OPERATOR_DOWN), delay_down, TimeUnit.MILLISECONDS);
        this.executorService.schedule(new InstanceDownAndUpTask(nacosServiceRegistry, nacosRegistration, OPERATOR_UP), delay_up, TimeUnit.MILLISECONDS);
    }
    
    @Override
    public void shutdown() throws NacosException {
        ThreadUtils.shutdownThreadPool(executorService, logger);
    }
    
    /**
     * 服务实例上下线任务
     */
    class InstanceDownAndUpTask implements Runnable {
        private NacosServiceRegistry nacosServiceRegistry;
        private NacosRegistration nacosRegistration;
        //更新服务实例的状态 :UP 、DOWN
        private String nacosServiceInstanceOperator;
    
        InstanceDownAndUpTask(NacosServiceRegistry nacosServiceRegistry, NacosRegistration nacosRegistration, String nacosServiceInstanceOperator) {
            this.nacosServiceRegistry = nacosServiceRegistry;
            this.nacosRegistration = nacosRegistration;
            this.nacosServiceInstanceOperator = nacosServiceInstanceOperator;
        }
    
        @Override
        public void run() {
            logger.info("===更新nacos服务实例的状态to:{}===start=", nacosServiceInstanceOperator);
            this.nacosServiceRegistry.setStatus(nacosRegistration, nacosServiceInstanceOperator);
            logger.info("===更新nacos服务实例的状态to:{}===end=", nacosServiceInstanceOperator);
    
            //上线后,关闭线程池
            if (NacosServiceInstanceUpAndDownOperator.OPERATOR_UP.equals(nacosServiceInstanceOperator)) {
                ThreadUtils.shutdownThreadPool(NacosServiceInstanceUpAndDownOperator.this.executorService, NacosServiceInstanceUpAndDownOperator.this.logger);
            }
        }
    }
    

    } `

    5.2 框架端解决方案的几点意见(Some suggestions on the solution of framework side):

    • a. 调换spring cloud的服务自动注册 和 dubbo服务注册的触发时点(Exchange the trigger time point of automatic service registration of 'spring cloud' and Dubbo service registration)

      让dubbo服务暴露的启动早于spring cloud的服务自动注册。这样的话就需要修改spring cloud commons的源码 和 dubbo 框架的源码,而且动的是根基,感觉不太舒服。

      Make Dubbo service exposed and automatically register services that start earlier than spring cloud.

    • b. spring cloud alibaba 中,dubbo服务暴露完成后向nacos注册中心发布一个更新通知(After the Dubbo service exposure is complete, an update notification is issued to the Nacos registry)

    • c. spring cloud alibaba 中,添加一个切面,切点为 spring cloud 的服务注册入口,然后在nacos服务注册之前先暴露dubbo服务(Add a aspect to the service registration portal of 'spring cloud'. Then start 'Dubbo' before 'Nacos' service registration to expose Dubbo service:)

      spring cloud alibaba框架中已经有一个现成的切面 DubboServiceRegistrationEventPublishingAspect#beforeRegister(Registration registration) ,可以在前置切点里面再加入dubbo服务的暴露就可以了,但对dubbo框架的服务暴露的过程需要做一些调整,避免在 ContextRefreshedEvent 事件后做一些重复的工作。

    opened by tianzeyong 61
  • [Discuss] the package name & maven groupId & version number

    [Discuss] the package name & maven groupId & version number

    [Discuss] the package name & maven groupId & version number

    Hi, everyone! now spring-cloud-alibaba have moved away from spring-cloud repository.

    The official policy will be announced in the future by spring-cloud team to explain why spring-cloud-alibaba move away from spring-cloud repository.

    The package name will be changed from org.springframework.cloud.alibaba to com.alibaba.cloud.

    The maven groupId change from org.springframework.cloud to com.alibaba.cloud. maven artifactId will be keep, we think the fewer modification the better.

    since the package name & maven groupId modification, the version number will be changed. This is the mapping table between version number modification and Spring Cloud version number.

    | Spring Cloud Alibaba Version before change | Spring Cloud Alibaba Version after change | Spring Cloud Version | | :---- | :---- | :----- | | 0.1.x | 1.0.x | Spring Cloud Edgware | | 0.2.x | 1.1.x | Spring Cloud Finchley | | 0.9.x | 1.2.x | Spring Cloud Greenwich |

    These modifications will effect the usage of spring-cloud-alibaba, we need the suggestions about package name & maven groupId & version number from community, please reply & discuss in the issue.

    [讨论] 关于包名 & maven groupId & 版本号的修改

    大家好,spring-cloud-alibaba 目前已经从 spring-cloud 的 github 仓库迁移到了 alibaba 仓库下。

    spring-cloud 团队会在未来发出官方的公告解释为什么 spring-cloud-alibaba 会迁移到 alibaba 仓库下。

    迁移意味着修改,下面是一些改动点的说明。

    包名从 org.springframework.cloud.alibaba 变成 com.alibaba.cloud

    maven groupId 从 org.springframework.cloud 变成 com.alibaba.cloud. maven artifactId 会保持原有的名字,我们认为我们改的越少,大家的改动也就越少。

    由于包名和 maven groupId 进行了修改,版本号也需要进行修改,这是版本号修改前后跟 Spring Cloud 版本号的映射关系表:

    | Spring Cloud Alibaba 修改前的版本 | Spring Cloud Alibaba 修改后的版本 | Spring Cloud 版本 | | :---- | :---- | :----- | | 0.1.x | 1.0.x | Spring Cloud Edgware | | 0.2.x | 1.1.x | Spring Cloud Finchley | | 0.9.x | 1.2.x | Spring Cloud Greenwich |

    这些包名和 maven groupId 以及版本号的修改会影响目前 spring-cloud-alibaba 的使用者,我们需要社区的意见,也想听听社区的声音。大家可以在 issue 里进行答复和讨论。

    discussion 
    opened by fangjian0423 61
  • Spring Cloud Dubbo组件去留问题讨论

    Spring Cloud Dubbo组件去留问题讨论

    Spring Cloud Dubbo组件去留问题讨论

    由于Spring Cloud Dubbo组件社区做了一些调研发现真正深度使用的用户不多,另外该模块设计本身存在一些问题成熟度不够,复杂度很高,长期缺乏维护答疑同学,因此为了降低社区维护成本,社区第4次双周会讨论觉得将Spring Cloud Dubbo从社区主干分支中移除可能更适合社区当前发展规划。社区未来的工作中心将在维护现有其他组件的稳定性的前提下,提升Spring Cloud Alibaba的微服务治理能力上,对相关建设感兴趣的同学也可以参与到社区的相关功能的建设上来,具体可参见:建设文档。你是否支持社区从主干中移除Spring Cloud Dubbo模块呢?无论是否支持都可以在本issue下进行留言,你的宝贵意见也是Spring Cloud Alibaba社区规划决策的重要信息来源!

    Discussion on the problem of leaving and leaving Spring Cloud Dubbo components

    We has done some research and found the Spring Cloud Dubbo component there are not many users who really use it deeply, and there are some problems in the design of the module itself, the maturity is not enough, the complexity is high, and there is a long-term lack of maintenance and answering contributors. Therefore, in order to reduce the cost of community maintenance, the community The 4th biweekly meeting discussed that it may be more suitable for the current development plan of the community to remove Spring Cloud Dubbo from the main branch of the community. The future work of the community will improve the microservices governance capabilities of Spring Cloud Alibaba on the premise of maintaining the stability of other existing components.People who are interested in related construction can also participate in the construction of related functions of the community. See: Construction Documentation. Do you support the community to remove the Spring Cloud Dubbo module from repository? Whether you support it or not, you can leave a comment under this issue. Your valuable opinions are also an important source of information for the planning and decision-making of the Spring Cloud Alibaba community!

    discussion dubbo 
    opened by steverao 56
  • 你对Spring Cloud Alibaba有什么期待?

    你对Spring Cloud Alibaba有什么期待?

    What do you expect from Spring Cloud Alibaba

    The Spring Cloud Alibaba community is making plans for 2022. You are welcome to leave a message to us about your thoughts.

    你对Spring Cloud Alibaba有什么期待?

    Spring Cloud Alibaba社区正在做2022年度规划,欢迎大家将自己的相关想法留言告诉我们:)

    discussion 
    opened by steverao 54
  • nacos 修改配置不生效

    nacos 修改配置不生效

    alibaba/nacos#1552 Issue Description

    Describe what happened (or what feature you want)

    使用nacos 1.1.4 docker mysql 单机版部署,总共遇到两个问题 1、修改配置后,配置不能及时生效,必须手动重启nacos(该问题每次都能复现) 2、当增加dataID 大于11条时,再次增加第12个配置时,新增的dataID 不能在列表上显示

    Describe what you expected to happen

    How to reproduce it (as minimally and precisely as possible)

    Tell us your environment

    docker-compose -f example/standalone-mysql.yaml up

    Anything else we need to know?

    docker compose

    nacos:
        image: '10.30.161.199:5000/nacos/nacos-server:1.1.4'
        container_name: nacos-standalone
        environment:
          - MODE=standalone
          - SPRING_DATASOURCE_PLATFORM=mysql
          - MYSQL_MASTER_SERVICE_HOST=mysql
          - MYSQL_MASTER_SERVICE_DB_NAME=nacos-config
          - MYSQL_MASTER_SERVICE_PORT=3306
          - MYSQL_MASTER_SERVICE_USER=root
          - MYSQL_MASTER_SERVICE_PASSWORD=tKWH0FQGZmNjgQRyNq9stDS0IXDtxXmx
          - MYSQL_DATABASE_NUM=1
        ports:
          - "8848:8848"
          - "9555:9555"
        depends_on:
          - mysql
        restart: on-failure
        deploy:
          placement:
            constraints: [node.labels.nacos==true]
    
    opened by yqbboy 48
  • 📣 Spring Boot 3.0 release General Availability(GA) version, about it you want to say?

    📣 Spring Boot 3.0 release General Availability(GA) version, about it you want to say?

    Background

    Spring Boot 3.0 release General Availability(GA) version yesterday, you can refer to https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga

    Discussion

    About Spring Boot 3.0, What is your demand? You can tell us by leaving message below.

    discussion 
    opened by steverao 37
  • No provider available from registry http::9090 for service xxx/com.alibaba.cloud.dubbo.service.DubboMetadataService:1.0.0 on consumer 192.168.50.205 use dubbo version 2.7.6, please check status of providers(disabled, not registered or in blacklist).

    No provider available from registry http::9090 for service xxx/com.alibaba.cloud.dubbo.service.DubboMetadataService:1.0.0 on consumer 192.168.50.205 use dubbo version 2.7.6, please check status of providers(disabled, not registered or in blacklist).

    Which Component Eureka 或者Nacos Discovery, Dubbo

    Describe the bug

    nacos或者eureka作为服务注册中心,服务A订阅了B服务,服务B订阅了C、D服务,当D服务Down机,会导致A调用B,B调用C服务出现“No provider available”,反之C服务Down机也会有这种问题

    Nacos or Eureka is the service registry. Service a subscribes to service B, and service B subscribes to services C and D. when service d is down, a calls B, and B calls C, and "no provider available" occurs. Otherwise, service C is down

    服务提供方配置B: Service provider configuration B:

    dubbo: cloud: subscribed-services: 'C,D' consumer: check: false client: netty retries: 0 threadpool: fixed threads: 200 queues: 0 loadbalance: 'roundrobin' init: true

    scan: base-packages: cn.retail.product protocol: name: dubbo port: 20900 client: netty server: netty serialization: hessian2 charset: utf-8 threadpool: fixed threads: 200 queues: 0 iothreads: 9 buffer: 8192 accepts: 1000 payload: 8388608 dispatcher: all

    registry: check: false file: './dubbo/dubbo-registry-product-service.cache' address: 'spring-cloud://192.168.30.221' port: 32505

    provider: filter: '-exception' loadbalance: 'roundrobin' cluster: 'failover'

    服务消费者A: Service consumer A:

    dubbo: cloud: subscribed-services: 'B' consumer: check: false client: netty retries: 0 threadpool: fixed threads: 200 queues: 0 loadbalance: 'roundrobin'

    eureka: instance: prefer-ip-address: true lease-renewal-interval-in-seconds: 5 lease-expiration-duration-in-seconds: 10 client: enabled: true registry-fetch-interval-seconds: 10 eureka-service-url-poll-interval-seconds: 5 service-url: defaultZone:'http://192.168.30.221:32505/eureka/,http://192.168.30.221:32506/eureka/,http://192.168.30.221:32507/eureka/'

    不清楚,是否为springcloud alibaba duboo bug导致

    I don't know if it is caused by the springcloud Alibaba dubbo bug

    opened by zzwangxin 37
  • 采用nacos作为注册中心,服务端网络参数改变,客户端持续用旧的参数连接服务端 Nacos is used as the registration center, the network parameters of the server change, and the client continues to connect the server with the old parameters

    采用nacos作为注册中心,服务端网络参数改变,客户端持续用旧的参数连接服务端 Nacos is used as the registration center, the network parameters of the server change, and the client continues to connect the server with the old parameters

    Which Component Nacos Discovery, Dubbo

    Describe the bug

    nacos作为服务注册中心,当服务端掉线(服务实例改变事件),dubbo重连任务每隔1分钟不间断进行。原因可能是spring-cloud-alibaba没有把服务实例改变消息传递进dubbo,也有可能是dubbo没有处理这个消息

    Nacos serves as the service registry. When the service end drops the line (service instance change event), Dubbo reconnection task will continue every 1 minute. The reason may be that spring cloud Alibaba did not deliver the service instance change message to Dubbo, or Dubbo did not process the message

    To Reproduce Steps to reproduce the behavior: 配置服务端和消费端的注册中心为nacos: 1.服务端参数:dubbo.protocol.name=dubbo,dubbo.protocol.port=28801,dubbo.scan.base-packages=xx.xx.xx,dubbo.registry.address=spring-cloud://localhost 2.消费端参数:dubbo.consumer.check=false,dubbo.registry.address=spring-cloud://localhost 3. 启动服务端和消费端 4.修改服务端dubbo监听端口为: dubbo.protocol.port=28802 5.重启服务端 6. 消费端服务端业务正常。但消费端持续不断每隔1分钟连接服务端旧的28801端口。

    配置服务端和消费端的注册中心为zookeeper: 1.服务端参数:dubbo.protocol.name=dubbo,dubbo.protocol.port=28801,dubbo.scan.base-packages=xx.xx.xx,dubbo.registry.address=zookeeper://127.0.0.1:2181 2.消费端参数:dubbo.consumer.check=false,dubbo.registry.address=zookeeper://127.0.0.1:2181 3. 启动服务端和消费端 4.修改服务端dubbo监听端口为: dubbo.protocol.port=28802 5.重启服务端 6. 消费端不会连接服务端旧的28801端口。消费端服务端业务正常。

    以上场景模拟在docker容器中的场景,在docker容器中,微服务经常重新启动,重启微服务以后,其ip地址会发生变化(此处用端口变化模拟地址变化,道理是一样的)。

    结论: 1、zookeeper作为服务注册中心,没有问题, 2、nacos作为服务注册中心,当服务端掉线(服务实例改变事件)并未处理该通道,造成重连任务不断进行。原因可能是spring-cloud-alibaba没有把服务实例改变消息传递进dubbo,也有可能是dubbo没有处理这个消息

    Configure the registry of the server and the consumer as Nacos:

    1. Server parameters: Dubbo. Protocol. Name = Dubbo, Dubbo. Protocol. Port = 28801, Dubbo. Scan. Base packages = xx.xx.xx, Dubbo. Registry. Address = spring cloud: / / localhost
    2. Consumer parameters: Dubbo. Consumer. Check = false, Dubbo. Registry. Address = spring cloud: / / localhost
    3. Start the service end and the consumer end
    4. Modify the Dubbo monitoring port of the server as: Dubbo. Protocol. Port = 28802
    5. Restart the server
    6. The service end business of the consumer end is normal. However, the consumer continues to connect to the old 28801 port of the server every 1 minute.

    Configure the registry of the server and consumer as zookeeper:

    1. Server parameters: Dubbo. Protocol. Name = Dubbo, Dubbo. Protocol. Port = 28801, Dubbo. Scan. Base packages = xx.xx.xx, Dubbo. Registry. Address = zookeeper: / / 127.0.0.1:2181
    2. Consumer parameters: Dubbo. Consumer. Check = false, Dubbo. Registry. Address = zookeeper: / / 127.0.0.1:2181
    3. Start the service end and the consumer end
    4. Modify the Dubbo monitoring port of the server as: Dubbo. Protocol. Port = 28802
    5. Restart the server
    6. The consumer will not connect to the old 28801 port of the server. The service end business of the consumer end is normal.

    The above scenario simulates the scenario in the docker container. In the docker container, the microservice is often restarted. After restarting the microservice, its IP address will change (Port change is used here to simulate address change, the same principle).

    Conclusion:

    1. Zookeeper as the service registry, no problem,
    2. As a service registry, Nacos does not handle the channel when the service end drops the line (service instance change event), resulting in the continuous reconnection task. The reason may be that spring cloud Alibaba did not deliver the service instance change message to Dubbo, or Dubbo did not process the message

    Expected behavior

    Expect Nacos as a registry as normal as zookeeper

    Screenshots 截屏2020-03-1514 21 04

    Additional context CentOS 7.5 、Java8 、 Version 2.2.0.RELEASE

    opened by lcg72 33
  • 【求助】spring-cloud-gateway使用nacos启动不成功

    【求助】spring-cloud-gateway使用nacos启动不成功

    前几天把项目的spring-cloud-gateway版本升级到了3.1.1,nacos的版本升级到2021.0.1.0,发现启动不了。 debug看了下,是阻塞在了WeightCalculatorWebFilter类locator.getRoutes().blockLast()这个地方。 邮件问了下鬼佬,他说不知道为什么,就不鸟我了。 后来在配置文件里加了下spring.cloud.gateway.predicate.weight.enabled=false,可以启动起来了。 不知道各位大佬,有没有谁知道这是什么原因导致的?

    public void onApplicationEvent(ApplicationEvent event) {
    	if (event instanceof PredicateArgsEvent) {
    		handle((PredicateArgsEvent) event);
    	}
    	else if (event instanceof WeightDefinedEvent) {
    		addWeightConfig(((WeightDefinedEvent) event).getWeightConfig());
    	}
    	else if (event instanceof RefreshRoutesEvent && routeLocator != null) {
    		// forces initialization
    		if (routeLocatorInitialized.compareAndSet(false, true)) {
    			// on first time, block so that app fails to start if there are errors in
    			// routes
    			// see gh-1574
    			routeLocator.ifAvailable(locator -> locator.getRoutes().blockLast());
    		}
    		else {
    			// this preserves previous behaviour on refresh, this could likely go away
    			routeLocator.ifAvailable(locator -> locator.getRoutes().subscribe());
    		}
    	}
    
    }
    
    kind / bug 
    opened by cxzucc 28
  • 为什么nacos不采用像apollo那样动态发布配置后 在客户端使用反射去更改配置值的 方式去动态更改配置?

    为什么nacos不采用像apollo那样动态发布配置后 在客户端使用反射去更改配置值的 方式去动态更改配置?

    问下各位大佬, nacos现在动态发布配置的机制是依赖spring的RefreshScope注解,RefreshScope注解配在配置所在的类头上,类似于这样: image

    服务在线的情况下,发布这个配置,这会导致spring上下文重新加载,导致服务重启,表现为在注册中心(如eureka)上先down一下然后再up(虽然这个过程可能非常快),,为什么nacos不采用类似apollo的动态发布方式,也就是通过beanFactory找到对应的配置所在的类,然后用反射的方式修改具体配置的值,这样整个spring上下文是不重启的,服务不会重启。

    这个说是springcloud/springcloudalibaba的标准导致目前的这个现状,所以在这里问问

    nacos 
    opened by DeBruyne2020 22
  • No provider available from registry localhost:9090 for service is in Spring Cloud Alibaba 2.2.1.RELEASE

    No provider available from registry localhost:9090 for service is in Spring Cloud Alibaba 2.2.1.RELEASE

    Which Component nacos 1.2.1, Spring Cloud Alibaba 2.2.1.RELEASE, Spring Cloud Hoxton.SR3, spring-boot 2.2.6

    Describe what problem you have encountered
    After my repeated tests, after starting the service provider and then starting the service consumer, the service consumer initiated an interface call to get an exception:(No provider available from registry localhost:9090 for service XXXXX use dubbo version 2.7.6, please check status of providers(disabled, not registered or in blacklist).)otherwise there is no problem, All my services are under the same group.

    dubbo 
    opened by LayJustDoIt 22
  • Spring Native run failed!

    Spring Native run failed!

    Which Component Nacos Discovery

    Describe the bug I ran mvn native:compile on Ubuntu and successfully got an executable native file. When I started this app, I got some error logs and then the app shutdown. And then I also did this work on Windows and it failed because of the same reason!

    To Reproduce Native App Running logs:

    2023-01-01T16:02:21.917+08:00  INFO 27086 --- [           main] c.a.n.client.env.SearchableProperties    : properties search order:PROPERTIES->JVM->ENV->DEFAULT_SETTING
    2023-01-01T16:02:21.917+08:00  WARN 27086 --- [           main] c.a.nacos.client.logging.NacosLogging    : Load Logback Configuration of Nacos fail, message: org.slf4j.impl.StaticLoggerBinder
    
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::                (v3.0.0)
    
    2023-01-01T16:02:21.920+08:00  INFO 27086 --- [           main] com.example.demo.Demo4Application        : Starting AOT-processed Demo4Application using Java 17.0.5 with PID 27086 (/home/jmc/demo4/build/native/nativeCompile/demo4 started by root in /home/jmc/demo4/build/native/nativeCompile)
    2023-01-01T16:02:21.920+08:00  INFO 27086 --- [           main] com.example.demo.Demo4Application        : No active profile set, falling back to 1 default profile: "default"
    2023-01-01T16:02:21.921+08:00  INFO 27086 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=f880f0b5-e998-3381-a879-8fb548c73dff
    2023-01-01T16:02:21.931+08:00  INFO 27086 --- [           main] o.s.b.w.embedded.tomcat.TaomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
    2023-01-01T16:02:21.932+08:00  INFO 27086 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
    2023-01-01T16:02:21.932+08:00  INFO 27086 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.1]
    2023-01-01T16:02:21.936+08:00  INFO 27086 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
    2023-01-01T16:02:21.936+08:00  INFO 27086 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 16 ms
    2023-01-01T16:02:22.962+08:00  INFO 27086 --- [           main] o.s.cloud.commons.util.InetUtils         : Cannot determine local hostname
    2023-01-01T16:02:23.966+08:00  INFO 27086 --- [           main] o.s.cloud.commons.util.InetUtils         : Cannot determine local hostname
    2023-01-01T16:02:23.985+08:00  INFO 27086 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
    2023-01-01T16:02:23.985+08:00  INFO 27086 --- [           main] c.a.n.client.env.SearchableProperties    : properties search order:PROPERTIES->JVM->ENV->DEFAULT_SETTING
    2023-01-01T16:02:23.986+08:00  WARN 27086 --- [           main] c.a.nacos.client.logging.NacosLogging    : Load Logback Configuration of Nacos fail, message: org.slf4j.impl.StaticLoggerBinder
    2023-01-01T16:02:23.986+08:00  INFO 27086 --- [           main] com.alibaba.nacos.client.naming          : initializer namespace from System Property : null
    2023-01-01T16:02:23.986+08:00  INFO 27086 --- [           main] com.alibaba.nacos.client.naming          : initializer namespace from System Environment :null
    2023-01-01T16:02:23.986+08:00  INFO 27086 --- [           main] com.alibaba.nacos.client.naming          : initializer namespace from System Property :
    2023-01-01T16:02:23.988+08:00 ERROR 27086 --- [           main] c.a.nacos.common.notify.NotifyCenter     : Service class newInstance has error :
    
    java.lang.InstantiationException: com.alibaba.nacos.common.notify.DefaultPublisher
            at [email protected]/java.lang.Class.newInstance(DynamicHub.java:639) ~[demo4:na]
            at com.alibaba.nacos.common.notify.NotifyCenter.lambda$static$0(NotifyCenter.java:89) ~[na:na]
            at com.alibaba.nacos.common.notify.EventPublisherFactory.apply(EventPublisherFactory.java:26) ~[demo4:na]
            at com.alibaba.nacos.common.utils.MapUtil.computeIfAbsent(MapUtil.java:153) ~[na:na]
            at com.alibaba.nacos.common.notify.NotifyCenter.registerToPublisher(NotifyCenter.java:347) ~[na:na]
            at com.alibaba.nacos.common.notify.NotifyCenter.registerToPublisher(NotifyCenter.java:328) ~[na:na]
            at com.alibaba.nacos.client.naming.NacosNamingService.init(NacosNamingService.java:99) ~[na:na]
            at com.alibaba.nacos.client.naming.NacosNamingService.<init>(NacosNamingService.java:85) ~[na:na]
            at [email protected]/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[demo4:na]
            at [email protected]/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[demo4:na]
            at com.alibaba.nacos.api.naming.NamingFactory.createNamingService(NamingFactory.java:59) ~[na:na]
            at com.alibaba.nacos.api.NacosFactory.createNamingService(NacosFactory.java:77) ~[na:na]
            at com.alibaba.cloud.nacos.NacosServiceManager.createNewNamingService(NacosServiceManager.java:99) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.NacosServiceManager.buildNamingService(NacosServiceManager.java:90) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.NacosServiceManager.getNamingService(NacosServiceManager.java:46) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.namingService(NacosServiceRegistry.java:193) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:68) ~[demo4:2022.0.0.0-RC1]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:264) ~[demo4:4.0.0]
            at com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:78) ~[demo4:2022.0.0.0-RC1]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:156) ~[demo4:4.0.0]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:119) ~[demo4:4.0.0]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:49) ~[demo4:4.0.0]
            at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[na:na]
            at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[na:na]
            at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[na:na]
            at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:413) ~[demo4:6.0.2]
            at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[demo4:6.0.2]
            at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:47) ~[na:na]
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[demo4:6.0.2]
            at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[na:na]
            at [email protected]/java.lang.Iterable.forEach(Iterable.java:75) ~[demo4:na]
            at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[demo4:6.0.2]
            at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[demo4:6.0.2]
            at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:932) ~[demo4:6.0.2]
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:587) ~[demo4:6.0.2]
            at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1291) ~[demo4:3.0.0]
            at com.example.demo.Demo4Application.main(Demo4Application.java:10) ~[demo4:na]
    Caused by: java.lang.NoSuchMethodException: com.alibaba.nacos.common.notify.DefaultPublisher.<init>()
            at [email protected]/java.lang.Class.getConstructor0(DynamicHub.java:3585) ~[demo4:na]
            at [email protected]/java.lang.Class.newInstance(DynamicHub.java:626) ~[demo4:na]
            ... 41 common frames omitted
    
    2023-01-01T16:02:23.988+08:00  WARN 27086 --- [           main] w.s.c.ServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'
    2023-01-01T16:02:23.990+08:00  INFO 27086 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
    2023-01-01T16:02:23.992+08:00 ERROR 27086 --- [           main] o.s.boot.SpringApplication               : Application run failed
    
    org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[demo4:6.0.2]
            at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[na:na]
            at [email protected]/java.lang.Iterable.forEach(Iterable.java:75) ~[demo4:na]
            at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[demo4:6.0.2]
            at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[demo4:6.0.2]
            at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:932) ~[demo4:6.0.2]
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:587) ~[demo4:6.0.2]
            at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1302) ~[demo4:3.0.0]
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1291) ~[demo4:3.0.0]
            at com.example.demo.Demo4Application.main(Demo4Application.java:10) ~[demo4:na]
    Caused by: java.lang.RuntimeException: ErrCode:-400, ErrMsg:com.alibaba.nacos.common.notify.DefaultPublisher.<init>()
            at com.alibaba.cloud.nacos.NacosServiceManager.createNewNamingService(NacosServiceManager.java:102) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.NacosServiceManager.buildNamingService(NacosServiceManager.java:90) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.NacosServiceManager.getNamingService(NacosServiceManager.java:46) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.namingService(NacosServiceRegistry.java:193) ~[demo4:2022.0.0.0-RC1]
            at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:68) ~[demo4:2022.0.0.0-RC1]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:264) ~[demo4:4.0.0]
            at com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:78) ~[demo4:2022.0.0.0-RC1]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:156) ~[demo4:4.0.0]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:119) ~[demo4:4.0.0]
            at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:49) ~[demo4:4.0.0]
            at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176) ~[na:na]
            at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169) ~[na:na]
            at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[na:na]
            at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:413) ~[demo4:6.0.2]
            at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:370) ~[demo4:6.0.2]
            at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:47) ~[na:na]
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[demo4:6.0.2]
            ... 13 common frames omitted
    Caused by: com.alibaba.nacos.api.exception.NacosException: java.lang.reflect.InvocationTargetException
            at com.alibaba.nacos.api.naming.NamingFactory.createNamingService(NamingFactory.java:61) ~[na:na]
            at com.alibaba.nacos.api.NacosFactory.createNamingService(NacosFactory.java:77) ~[na:na]
            at com.alibaba.cloud.nacos.NacosServiceManager.createNewNamingService(NacosServiceManager.java:99) ~[demo4:2022.0.0.0-RC1]
            ... 29 common frames omitted
    Caused by: java.lang.reflect.InvocationTargetException: null
            at [email protected]/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[demo4:na]
            at [email protected]/java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[demo4:na]
            at com.alibaba.nacos.api.naming.NamingFactory.createNamingService(NamingFactory.java:59) ~[na:na]
            ... 31 common frames omitted
    Caused by: com.alibaba.nacos.api.exception.runtime.NacosRuntimeException: java.lang.InstantiationException: com.alibaba.nacos.common.notify.DefaultPublisher
            at com.alibaba.nacos.common.notify.NotifyCenter.lambda$static$0(NotifyCenter.java:94) ~[na:na]
            at com.alibaba.nacos.common.notify.EventPublisherFactory.apply(EventPublisherFactory.java:26) ~[demo4:na]
            at com.alibaba.nacos.common.utils.MapUtil.computeIfAbsent(MapUtil.java:153) ~[na:na]
            at com.alibaba.nacos.common.notify.NotifyCenter.registerToPublisher(NotifyCenter.java:347) ~[na:na]
            at com.alibaba.nacos.common.notify.NotifyCenter.registerToPublisher(NotifyCenter.java:328) ~[na:na]
            at com.alibaba.nacos.client.naming.NacosNamingService.init(NacosNamingService.java:99) ~[na:na]
            at com.alibaba.nacos.client.naming.NacosNamingService.<init>(NacosNamingService.java:85) ~[na:na]
            ... 34 common frames omitted
    Caused by: java.lang.InstantiationException: com.alibaba.nacos.common.notify.DefaultPublisher
            at [email protected]/java.lang.Class.newInstance(DynamicHub.java:639) ~[demo4:na]
            at com.alibaba.nacos.common.notify.NotifyCenter.lambda$static$0(NotifyCenter.java:89) ~[na:na]
            ... 40 common frames omitted
    Caused by: java.lang.NoSuchMethodException: com.alibaba.nacos.common.notify.DefaultPublisher.<init>()
            at [email protected]/java.lang.Class.getConstructor0(DynamicHub.java:3585) ~[demo4:na]
            at [email protected]/java.lang.Class.newInstance(DynamicHub.java:626) ~[demo4:na]
            ... 41 common frames omitted
    
    2023-01-01T16:02:24.002+08:00  WARN 27086 --- [       Thread-4] c.a.nacos.common.notify.NotifyCenter     : [NotifyCenter] Start destroying Publisher
    2023-01-01T16:02:24.002+08:00  WARN 27086 --- [       Thread-4] c.a.nacos.common.notify.NotifyCenter     : [NotifyCenter] Destruction of the end
    

    Maven pom file:

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.example</groupId>
        <artifactId>demo4</artifactId>
        <version>1.0.0</version>
    
        <properties>
            <java.version>17</java.version>
        </properties>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>3.0.0</version>
            <relativePath/>
        </parent>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.alibaba.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>2022.0.0.0-RC1</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </project>
    

    mvn native:compile running logs:

    root@Jmc-PC:/home/jmc/demo4# ./mvnw native:compile
    [INFO] Scanning for projects...
    [INFO]
    [INFO] -------------------------< com.example:demo4 >--------------------------
    [INFO] Building demo4 1.0.0
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] >>> native-maven-plugin:0.9.18:compile (default-cli) > package @ demo4 >>>
    [INFO]
    [INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ demo4 ---
    [INFO] Copying 1 resource
    [INFO] Copying 0 resource
    [INFO]
    [INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ demo4 ---
    [INFO] Nothing to compile - all classes are up to date
    [INFO]
    [INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ demo4 ---
    [INFO] skip non existing resourceDirectory /home/jmc/demo4/src/test/resources
    [INFO]
    [INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ demo4 ---
    [INFO] No sources to compile
    [INFO]
    [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ demo4 ---
    [INFO] No tests to run.
    [INFO]
    [INFO] --- maven-jar-plugin:3.3.0:jar (default-jar) @ demo4 ---
    [INFO]
    [INFO] --- spring-boot-maven-plugin:3.0.0:repackage (repackage) @ demo4 ---
    [INFO] Replacing main artifact with repackaged archive
    [INFO]
    [INFO] <<< native-maven-plugin:0.9.18:compile (default-cli) < package @ demo4 <<<
    [INFO]
    [INFO]
    [INFO] --- native-maven-plugin:0.9.18:compile (default-cli) @ demo4 ---
    [INFO] Found GraalVM installation from JAVA_HOME variable.
    [WARNING] Properties file at 'jar:file:///root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar!/META-INF/native-image/io.netty/common/native-image.properties' does not match the recommended 'META-INF/native-image/com.alibaba.nacos/nacos-client/native-image.properties' layout.
    [WARNING] Properties file at 'jar:file:///root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar!/META-INF/native-image/io.netty/buffer/native-image.properties' does not match the recommended 'META-INF/native-image/com.alibaba.nacos/nacos-client/native-image.properties' layout.
    [WARNING] Properties file at 'jar:file:///root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar!/META-INF/native-image/io.netty/transport/native-image.properties' does not match the recommended 'META-INF/native-image/com.alibaba.nacos/nacos-client/native-image.properties' layout.
    [WARNING] Properties file at 'jar:file:///root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar!/META-INF/native-image/io.netty/handler/native-image.properties' does not match the recommended 'META-INF/native-image/com.alibaba.nacos/nacos-client/native-image.properties' layout.
    [WARNING] Properties file at 'jar:file:///root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar!/META-INF/native-image/io.netty/codec-http/native-image.properties' does not match the recommended 'META-INF/native-image/com.alibaba.nacos/nacos-client/native-image.properties' layout.
    [WARNING] Properties file at 'jar:file:///root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar!/META-INF/native-image/io.netty/codec-http2/native-image.properties' does not match the recommended 'META-INF/native-image/com.alibaba.nacos/nacos-client/native-image.properties' layout.
    [INFO] Executing: /root/graalvm-ce-java17-22.3.0/bin/native-image -cp /home/jmc/demo4/target/classes:/root/.m2/repository/org/slf4j/jul-to-slf4j/2.0.4/jul-to-slf4j-2.0.4.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-json/3.0.0/spring-boot-starter-json-3.0.0.jar:/root/.m2/repository/ch/qos/logback/logback-classic/1.4.5/logback-classic-1.4.5.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-web/3.0.0/spring-boot-starter-web-3.0.0.jar:/root/.m2/repository/com/alibaba/nacos/nacos-auth-plugin/2.2.1-RC/nacos-auth-plugin-2.2.1-RC.jar:/root/.m2/repository/org/springframework/spring-beans/6.0.2/spring-beans-6.0.2.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/10.1.1/tomcat-embed-el-10.1.1.jar:/root/.m2/repository/commons-codec/commons-codec/1.15/commons-codec-1.15.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.14.1/jackson-core-2.14.1.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar:/root/.m2/repository/org/springframework/spring-expression/6.0.2/spring-expression-6.0.2.jar:/root/.m2/repository/org/springframework/spring-webmvc/6.0.2/spring-webmvc-6.0.2.jar:/root/.m2/repository/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/10.1.1/tomcat-embed-core-10.1.1.jar:/root/.m2/repository/org/springframework/spring-aop/6.0.2/spring-aop-6.0.2.jar:/root/.m2/repository/com/alibaba/nacos/nacos-encryption-plugin/2.2.1-RC/nacos-encryption-plugin-2.2.1-RC.jar:/root/.m2/repository/com/alibaba/nacos/nacos-client/2.2.1-RC/nacos-client-2.2.1-RC.jar:/root/.m2/repository/org/apache/httpcomponents/httpcore-nio/4.4.15/httpcore-nio-4.4.15.jar:/root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.14.1/jackson-datatype-jdk8-2.14.1.jar:/root/.m2/repository/io/prometheus/simpleclient_tracer_otel_agent/0.16.0/simpleclient_tracer_otel_agent-0.16.0.jar:/root/.m2/repository/org/springframework/cloud/spring-cloud-commons/4.0.0/spring-cloud-commons-4.0.0.jar:/root/.m2/repository/org/springframework/spring-web/6.0.2/spring-web-6.0.2.jar:/root/.m2/repository/io/prometheus/simpleclient_tracer_common/0.16.0/simpleclient_tracer_common-0.16.0.jar:/root/.m2/repository/io/prometheus/simpleclient/0.16.0/simpleclient-0.16.0.jar:/root/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/root/.m2/repository/com/alibaba/cloud/spring-cloud-starter-alibaba-nacos-discovery/2022.0.0.0-RC1/spring-cloud-starter-alibaba-nacos-discovery-2022.0.0.0-RC1.jar:/root/.m2/repository/io/prometheus/simpleclient_tracer_otel/0.16.0/simpleclient_tracer_otel-0.16.0.jar:/root/.m2/repository/ch/qos/logback/logback-core/1.4.5/logback-core-1.4.5.jar:/root/.m2/repository/org/springframework/cloud/spring-cloud-context/4.0.0/spring-cloud-context-4.0.0.jar:/root/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.14.1/jackson-annotations-2.14.1.jar:/root/.m2/repository/com/alibaba/cloud/spring-cloud-alibaba-commons/2022.0.0.0-RC1/spring-cloud-alibaba-commons-2022.0.0.0-RC1.jar:/root/.m2/repository/org/springframework/spring-core/6.0.2/spring-core-6.0.2.jar:/root/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.14.1/jackson-module-parameter-names-2.14.1.jar:/root/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.1/tomcat-embed-websocket-10.1.1.jar:/root/.m2/repository/org/springframework/spring-jcl/6.0.2/spring-jcl-6.0.2.jar:/root/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/3.0.0/spring-boot-autoconfigure-3.0.0.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/3.0.0/spring-boot-starter-tomcat-3.0.0.jar:/root/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.14.1/jackson-datatype-jsr310-2.14.1.jar:/root/.m2/repository/com/alibaba/spring/spring-context-support/1.0.11/spring-context-support-1.0.11.jar:/root/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.19.0/log4j-to-slf4j-2.19.0.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter/3.0.0/spring-boot-starter-3.0.0.jar:/root/.m2/repository/org/springframework/security/spring-security-crypto/6.0.0/spring-security-crypto-6.0.0.jar:/root/.m2/repository/org/springframework/boot/spring-boot-starter-logging/3.0.0/spring-boot-starter-logging-3.0.0.jar:/root/.m2/repository/org/apache/httpcomponents/httpcore/4.4.15/httpcore-4.4.15.jar:/root/.m2/repository/org/slf4j/slf4j-api/2.0.4/slf4j-api-2.0.4.jar:/root/.m2/repository/org/springframework/spring-context/6.0.2/spring-context-6.0.2.jar:/root/.m2/repository/io/micrometer/micrometer-observation/1.10.2/micrometer-observation-1.10.2.jar:/root/.m2/repository/org/yaml/snakeyaml/1.33/snakeyaml-1.33.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.14.1/jackson-databind-2.14.1.jar:/root/.m2/repository/org/apache/httpcomponents/httpasyncclient/4.1.5/httpasyncclient-4.1.5.jar:/root/.m2/repository/io/micrometer/micrometer-commons/1.10.2/micrometer-commons-1.10.2.jar --no-fallback -H:Path=/home/jmc/demo4/target -H:Name=demo4
    ================================================================================================================GraalVM Native Image: Generating 'demo4' (executable)...
    ================================================================================================================Warning: Could not resolve io.netty.channel.socket.nio.NioServerSocketChannel for reflection configuration. Reason: java.lang.ClassNotFoundException: io.netty.channel.socket.nio.NioServerSocketChannel.
    [1/7] Initializing...                                                                            (9.4s @ 0.31GB) Version info: 'GraalVM 22.3.0 Java 17 CE'
     Java version info: '17.0.5+8-jvmci-22.3-b08'
     C compiler: gcc (linux, x86_64, 11.3.0)
     Garbage collector: Serial GC
     1 user-specific feature(s)
     - org.springframework.aot.nativex.feature.PreComputeFieldFeature
    The bundle named: org.apache.el.Messages, has not been found. If the bundle is part of a module, verify the bundle name is a fully qualified class name. Otherwise verify the bundle path is accessible in the classpath.
    Field org.apache.commons.logging.LogAdapter#log4jSpiPresent set to true at build time
    Field org.apache.commons.logging.LogAdapter#log4jSlf4jProviderPresent set to true at build time
    Field org.apache.commons.logging.LogAdapter#slf4jSpiPresent set to true at build time
    Field org.apache.commons.logging.LogAdapter#slf4jApiPresent set to true at build time
    Field org.springframework.core.NativeDetector#imageCode set to true at build time
    Field org.springframework.core.KotlinDetector#kotlinPresent set to false at build time
    Field org.springframework.core.KotlinDetector#kotlinReflectPresent set to false at build time
    Field org.springframework.format.support.DefaultFormattingConversionService#jsr354Present set to false at build time
    Field org.springframework.cglib.core.AbstractClassGenerator#imageCode set to true at build time
    Field org.springframework.boot.logging.java.JavaLoggingSystem$Factory#PRESENT set to true at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#romePresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jaxb2Present set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2Present set to true at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2XmlPresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2SmilePresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jackson2CborPresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#gsonPresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#jsonbPresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#kotlinSerializationCborPresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#kotlinSerializationJsonPresent set to false at build time
    Field org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport#kotlinSerializationProtobufPresent set to false at build time
    Field org.springframework.boot.logging.log4j2.Log4J2LoggingSystem$Factory#PRESENT set to false at build time
    Field org.springframework.boot.logging.logback.LogbackLoggingSystem$Factory#PRESENT set to true at build time
    Field org.springframework.cloud.bootstrap.TextEncryptorConfigBootstrapper#RSA_IS_PRESENT set to false at build time
    Field org.springframework.web.servlet.view.InternalResourceViewResolver#jstlPresent set to false at build time
    Field org.springframework.web.context.support.StandardServletEnvironment#jndiPresent set to true at build time
    Field org.springframework.web.context.support.WebApplicationContextUtils#jsfPresent set to false at build time
    Field org.springframework.web.context.request.RequestContextHolder#jsfPresent set to false at build time
    Field org.springframework.context.event.ApplicationListenerMethodAdapter#reactiveStreamsPresent set to false at build time
    Field org.springframework.boot.logging.logback.LogbackLoggingSystemProperties#JBOSS_LOGGING_PRESENT set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jaxb2Present set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jackson2Present set to true at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jackson2XmlPresent set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jackson2SmilePresent set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#gsonPresent set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#jsonbPresent set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#kotlinSerializationCborPresent set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#kotlinSerializationJsonPresent set to false at build time
    Field org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter#kotlinSerializationProtobufPresent set to false at build time
    Field org.springframework.boot.autoconfigure.web.format.WebConversionService#JSR_354_PRESENT set to false at build time
    Field org.springframework.core.ReactiveAdapterRegistry#reactorPresent set to false at build time
    Field org.springframework.core.ReactiveAdapterRegistry#rxjava3Present set to false at build time
    Field org.springframework.core.ReactiveAdapterRegistry#kotlinCoroutinesPresent set to false at build time
    Field org.springframework.core.ReactiveAdapterRegistry#mutinyPresent set to false at build time
    SLF4J: No SLF4J providers were found.
    SLF4J: Defaulting to no-operation (NOP) logger implementation
    SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
    Field org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler#isContextPropagationPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#romePresent set to false at build time
    Field org.springframework.web.client.RestTemplate#jaxb2Present set to false at build time
    Field org.springframework.web.client.RestTemplate#jackson2Present set to true at build time
    Field org.springframework.web.client.RestTemplate#jackson2XmlPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#jackson2SmilePresent set to false at build time
    Field org.springframework.web.client.RestTemplate#jackson2CborPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#gsonPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#jsonbPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#kotlinSerializationCborPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#kotlinSerializationJsonPresent set to false at build time
    Field org.springframework.web.client.RestTemplate#kotlinSerializationProtobufPresent set to false at build time
    Field org.springframework.web.servlet.support.RequestContext#jstlPresent set to false at build time
    [2/7] Performing analysis...  [***********]                                                    (105.7s @ 1.58GB)
      18,216 (92.48%) of 19,698 classes reachable
      30,664 (68.78%) of 44,581 fields reachable
      90,657 (61.00%) of 148,606 methods reachable
         843 classes,   205 fields, and 3,909 methods registered for reflection
          64 classes,    70 fields, and    55 methods registered for JNI access
           4 native libraries: dl, pthread, rt, z
    [3/7] Building universe...                                                                       (8.8s @ 1.60GB)
    [4/7] Parsing methods...      [***]                                                              (6.8s @ 2.23GB)
    [5/7] Inlining methods...     [****]                                                             (3.8s @ 1.84GB)
    [6/7] Compiling methods...    [*******]                                                         (55.5s @ 2.28GB)
    [7/7] Creating image...                                                                         (10.4s @ 2.19GB)
      38.23MB (48.53%) for code area:    58,807 compilation units
      37.43MB (47.50%) for image heap:  409,428 objects and 382 resources
       3.13MB ( 3.97%) for other data
      78.79MB in total
    ----------------------------------------------------------------------------------------------------------------
    Top 10 packages in code area:                           Top 10 object types in image heap:
       1.64MB sun.security.ssl                                 8.47MB byte[] for code metadata
       1.11MB com.alibaba.nacos.shaded.com.google.protobuf     4.34MB java.lang.Class
       1.05MB java.util                                        3.98MB java.lang.String
     832.54KB java.lang.invoke                                 3.63MB byte[] for embedded resources
     718.00KB com.sun.crypto.provider                          3.44MB byte[] for java.lang.String
     540.44KB org.apache.catalina.core                         3.15MB byte[] for general heap data
     510.83KB java.lang                                        1.53MB com.oracle.svm.core.hub.DynamicHubCompanion
     499.61KB org.apache.tomcat.util.net                     975.30KB byte[] for reflection metadata
     490.43KB org.apache.coyote.http2                        796.93KB java.lang.String[]
     479.00KB java.util.concurrent                           736.08KB java.util.HashMap$Node
      30.03MB for 768 more packages                            5.93MB for 3371 more object types
    ----------------------------------------------------------------------------------------------------------------
                        9.8s (4.7% of total time) in 70 GCs | Peak RSS: 4.43GB | CPU load: 6.12
    ----------------------------------------------------------------------------------------------------------------
    Produced artifacts:
     /home/jmc/demo4/target/demo4 (executable)
     /home/jmc/demo4/target/demo4.build_artifacts.txt (txt)
    ================================================================================================================
    Finished generating 'demo4' in 3m 27s.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  03:30 min
    [INFO] Finished at: 2023-01-01T18:30:37+08:00
    [INFO] ------------------------------------------------------------------------
    
    opened by KillerJmc 0
  • Wiki document organization and induction

    Wiki document organization and induction

    Recently, we have branched out the 2022.x branch. There is a lag in the organization of wiki documents, and the content of each version is not distinguished. It needs to be unified.

    contribution welcome 
    opened by steverao 0
  • IPv4 to IPv6 address migration way

    IPv4 to IPv6 address migration way

    We need to provide a method to help enterprises realize the smooth migration of the large-scale Spring Cloud Alibaba microservice system IP address stack from IPv4 to IPv6. The specific method is to achieve migration through dual registration and double subscription. The specific migration steps of this solution are as follows:

    1. First, upgrade the Spring Cloud Alibaba framework for all microservice applications in the system to enable them to have dual-stack address extraction and resolution functions.
    2. Transform the IP address protocol stack of the host machine where some microservices in the system are located, so that it supports dual-stack IPv4 and IPv6 addresses at the same time.
    3. The dual-stack address extraction module in the microservice application modified in step 2 extracts the dual-stack addresses in the application host, and registers the dual-stack addresses to the registration center through the service registration module.
    4. Consumers subscribe to the dual-stack IPv4 and IPv6 addresses of a service in the registration center, and compare the address stack types supported by the host through the dual-stack address resolution module in the application. If the host only supports IPv4, use The provider’s IPv4 address initiates a service call; if only IPv6 is supported or dual-stack is supported at the same time, the provider’s IPv6 address is used to initiate a service call. If the call fails, it is best to use the IPv4 address to retry.
    5. When all Spring Cloud microservices in the system have completed supporting the IPv6 address stack, gradually close the IPv4 address stack for all application hosts, thereby smoothly completing the migration of the large-scale microservice system from the IPv4 address stack to the IPv6 address stack .

    IPv4地址向IPv6地址迁移方案

    我们需要提供一种帮助企业实现大规模Spring Cloud Alibaba微服务系统IP地址栈从IPv4平滑迁移到IPv6的方法,具体方法就是双注册双订阅实现迁移,该方案的具体迁移步骤:

    1. 首先对所有的系统中的微服务应用进行Spring Cloud Alibaba框架升级,让其具备双栈地址提取和解析功能。
    2. 对系统中的部分微服务所在宿主机进行IP地址协议栈改造,让其同时支持双栈IPv4和IPv6地址。
    3. 经过步骤2改造的微服务应用中的双栈地址提取模块,提取应用宿主机中的双栈地址,并通过服务注册模块,将双栈地址都注册到注册中心。
    4. 消费者订阅注册中心中的某个服务的双栈IPv4和IPv6地址,通过应用中的双栈地址解析模块,比对宿主机所支持的地址栈类型,如果宿主机仅支持IPv4,则使用提供者的IPv4地址发起服务调用;如果仅支持IPv6或同时支持双栈,则用提供者的IPv6地址发起服务调用,调用失败最好能使用IPv4地址进行重试。
    5. 当系统中的所有Spring Cloud微服务都完成支持IPv6地址栈的支持后,逐步对所有应用宿主机关闭IPv4地址栈,从而平滑完成大规模微服务系统从IPv4地址栈到IPv6地址栈的迁移。
    contribution welcome 
    opened by steverao 0
  • Filter invalid IPv6 addresses

    Filter invalid IPv6 addresses

    In branch of 2.2.9.RELEASE and 2021.0.4.0, we provide the ability to register IPv6 address. but in relevant logic, we don't filter some invalid addresses now, such as link local address(fe80::c03a:5bff:fee7:5b55) or any local address. We should filter them.

    contribution welcome 
    opened by steverao 0
  • update nacos-config-examples

    update nacos-config-examples

    Describe what this PR does / why we need it

    1. 移除nacos-config-2.4.x-example模块
    2. nacos-config-example 相关调整: a. 移除spring-cloud-starter-bootstrap依赖 , 默认不再使用bootstrap.yml方式配置 b. 移除nacos config shared-configsextension-configs 2中配置写法 , 新版本使用spring.config.import方式引入配置
    opened by ruansheng8 0
  • 📣 Spring Cloud Alibaba 2022.0.0.0-RC1 is released

    📣 Spring Cloud Alibaba 2022.0.0.0-RC1 is released

    Hello Community,

    We are very glad to announce that Spring Cloud Alibaba 2022.0.0.0-RC1 is released.

    You can check detailed release notes here:

    • Release notes: https://github.com/alibaba/spring-cloud-alibaba/releases/tag/2022.0.0.0-RC1
    • Relevant article: https://mp.weixin.qq.com/s/R3CVyxnJoR3xi9mGeXG-0A

    If there are no notable bugs, the RELEASE version will come within a week.

    If you have any questions using this version, please report the issue on Github.

    Best regards, Spring Cloud Alibaba Team

    opened by steverao 0
Releases(2022.0.0.0-RC1)
  • 2022.0.0.0-RC1(Dec 22, 2022)

    ⭐️ Features / Enhancements

    • [Spring Boot 3.0]Add support for Spring Boot 3 and JDK 17(#2948,#2965,#2966,#2970,#2968,#2979,#2972,#2985)
    • [Seata]Add document for seata and update the version of mysql-connector-java(#2918)
    • [Nacos]Refactor NacosWatch and add GatewayLocatorHeartBeatPublisher(#2881), Modify the switch of NacosWatch in additional-spring-configuration-metadata.json (#2907)
    • [Nacos]Refactor tests for nacos(#2732)
    • [Nacos]Polish doc in nacos discovery example(#2804)
    • [Nacos]Replace "UP" and "DOWN" character string to static const in NacosServiceRegistry(#2851)
    • [Nacos]Delete useless codes in example(#2895)
    • [Nacos]Fix the inconsistent between nacos examples readme.md and nacos user's docs(#2801)
    • [Nacos]Refactor nacos-discovery-example(#2933)
    • [Nacos]Automatically find IPv4 when there is no IPv6 found(#2806)
    • [RocketMQ]Reuse RocketMQ producer(#2949)
    • [RocketMQ]Change logger from parent class to log in current class(#2791)
    • [Sentinel]Add support for consul ack-token at spring-cloud-alibaba-sentinel-datasource(#2860)
    • [Sentinel]Add tests for Sentinel(#2734)
    • [Example]Add an integrated example for local and k8s deployment of Spring Cloud Alibaba(#2873)
    • [Example]Make module name consistent in integrated-example(#2966)
    • [Example]Resolve errors in generating javadocs by mvn install(#2781)
    • [Others]Optimized with jdk new features(#2972)
    • [Tests]Fix misspellings in TestTimeoutExtension(#2850)
    • [Adoc]Correct a spelling mistake in ans.adoc(#2818)
    • [Adoc]Add doc for 2022.x graalvm(#3002)

    🐞 Bug Fixes

    • [Nacos]Fix Nacos config namespace(#2874)
    • [Nacos]Fix same dataId with different group and namespace can't override in local(#2934)
    • [Nacos]fix nacos example run failed in GraalVM environment(#2998)
    • [RocketMQ]Fix missing bootstrap dependcy in spring-cloud-bus-rocketmq-example(#2831)
    • [RocketMQ]Fix a typo in integrated-example(#2942)
    • [RocketMQ]Fix RocketMQ bus(#2794)
    • [Sidecar]Fix the sidecar's IP not registered to Nacos(#2935)
    • [Sidecar]Fix spelling mistakes in readme.md(#2796)
    • [Sentinel]Fix a grammar typo in README (#2819)
    • [Example]Fix bootstrap bug for integrated examples(#2990)

    📔 Reference Document

    🔨 Dependency Upgrades

    • [Seata]Upgrade to 1.6.1(#2988)
    • [RocketMQ]Upgrade to 4.9.4(#2748)
    • [Sentinel]Upgrade to 1.8.6 (#2962)
    • [Nacos]Upgrade to 2.2.1-RC (#2999)
    • [Spring Boot]Upgrade to 3.0.0 (#2948)
    • [Spring Cloud]Upgrade to 2022.0.0 (#2985))

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    Source code(tar.gz)
    Source code(zip)
  • 2021.0.4.0(Sep 15, 2022)

    ⭐️ Features / Enhancements

    • [Nacos]Support IPv6 address register and subscribe in registry(#2728)
    • [Nacos]Add basic equals method in NacosServiceInstance(#2671)
    • [Nacos]Support refresh specific configurationPropertiesBeans(#2437)
    • [Nacos]Improve Nacos Config examples(#2551)
    • [RocketMQ]Support RocketMQ anonymous group(#2464)
    • [RocketMQ]Support blank header value(#2571)
    • [RocketMQ]Improve RocketMQ examples and document(#2505)
    • [Sidecar]Provide user using document(#2751)

    🐞 Bug Fixes

    • [Seata]Fix circular dependency(#2666)
    • [Seata]Optimize circular dependencies(#2658)
    • [Common]Fix invalid picture URL in document(#2649)
    • [Nacos]Fix report error during destory undertow server(#2670)
    • [Nacos]Fix nacos-config example error(#2773)
    • [RocketMQ]Fixed multi-broker offset error(#2571)
    • [RocketMQ]Fixed RocketMQ binder with anonymous group cause error(#2464)
    • [Sentinel]Fix Sentinel datasource init error in jacocoagent environment(#2477)

    📔 Reference Document

    🔨 Dependency Upgrades

    • [Seata]Upgrade to 1.5.2(#2749)
    • [RocketMQ]Upgrade to 4.9.4(#2748)
    • [Sentinel]Upgrade to 1.8.5 (#2746)
    • [Nacos]Upgrade to 2.0.4 (#2747)
    • [Spring Boot]Upgrade to 2.6.11 (#2753)
    • [Spring Cloud]Upgrade to 2021.0.4 (#2752)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    Source code(tar.gz)
    Source code(zip)
  • 2.2.9.RELEASE(Sep 15, 2022)

    ⭐️ Features / Enhancements

    • [Appactive]Provide multi-active solution for Spring Cloud Alibaba user based Appactive(#2758)
    • [Sidecar]Provide user using document(#2763)
    • [RocketMQ]Support anonymous group in pollable mode(#2645)
    • [RocketMQ]Support PollMessageSource(#2645)
    • [RocketMQ]Support set maxReconsumeTimes function(#2647)
    • [Nacos]Support IPv6 address register and subscribe in registry(#2677)
    • [Nacos]Add basic equals method in NacosServiceInstance(#2672)
    • [Sentinel]Polish sentinel readme.md(#2768)
    • [Other]Optimize the import order and polish the codes(#2621)

    🐞 Bug Fixes

    • [Seata]Fix circular dependency(#2661)
    • [Common]Fix invalid picture URL in document(#2648)
    • [Nacos]Fix report error during destory undertow server(#2683)
    • [Nacos]Fix nacos-config example error(#2772)

    📔 Reference Document

    🔨 Dependency Upgrades

    • [Seata]Upgrade to 1.5.2(#2757)
    • [RocketMQ]Upgrade to 4.9.4(#2755)
    • [Sentinel]Upgrade to 1.8.5 (#2756)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    Source code(tar.gz)
    Source code(zip)
  • 2.2.8.RELEASE(Jun 24, 2022)

    ⭐️ Features / Enhancements

    • [RocketMQ]Support RocketMQ anonymous group(#2511)
    • [RocketMQ]Support blank header value(#2572)
    • [RocketMQ]Improve RocketMQ examples and document(#2570)
    • [Nacos]Support refresh specific configurationPropertiesBeans(#2437)
    • [Nacos]Support without file extensions in Nacos Config(#2538)
    • [Nacos]Add examples of shared-configs and extension-configs(#2562)
    • [Nacos]Improve Nacos Config examples(#2551)
    • [Nacos]Improve Nacos wiki(#2584)

    🐞 Bug Fixes

    • [Common] Fixed maven duplicate declaration(#2574)
    • [RocketMQ]Fixed multi-broker offset error(#2572)
    • [Seata]Optimize circular dependencies(#2568)
    • [Sentinel] Fix Sentinel datasource init error in jacocoagent environment(#2477)
    • [RocketMQ]Fixed RocketMQ binder with anonymous group cause error(#2464)

    📔 Reference Document

    🔨 Dependency Upgrades

    • [Seata] Upgrade to 1.5.1(#2583)
    • [RocketMQ] Upgrade to 4.9.3(#2568)
    • [Nacos] Upgrade to 2.1.0(#2563)
    • [Sentinel] Upgrade to 1.8.4 (#2556)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    Source code(tar.gz)
    Source code(zip)
  • 2021.0.1.0(Feb 28, 2022)

    ⭐️ Features / Enhancements

    • [Nacos Config] Support spring.config.import (#2349)
    • [Nacos Config] Remove dependency spring-cloud-starter-bootstrap (#2349)
    • [Nacos Discovery] Support failure tolerance (#2360)
    • [Sentinel] Support Feign client custom configuration (#2342)
    • [Sentinel] Optimize circular dependencies (#2400)
    • [Seata] Optimize circular dependencies (#2407)
    • [Common] Merge 2.2.x to 2022 (#2400)
    • [Common] Refactor deprecated code (#2395)
    • [Common] Optimize tests and examples (#2406 #2395)

    🐞 Bug Fixes

    • [RocketMQ] Fixed ClassNotFound when no actuator-starter(#2406)
    • [Common] Fixed document content wrong (#2408)

    📔 Reference Document

    2021.0.1.0 is compatible with Spring Cloud 2021.0.1, cheers!🍺

    查看 2021.0.1.0 升级指南

    🔨 Dependency Upgrades

    • [Spring Cloud] Upgrade to Spring Cloud 2021.0.1(#2401)
    • [Spring Boot] Upgrade to Spring Boot 2.6.3(#2401)
    • [Nacos] Upgrade to Nacos 1.4.2(#2403)
    • [Sentinel] Upgrade to Sentinel 1.8.3(#2404)
    • [Seata] Upgrade to Seata 1.4.2(#2407)
    • [RocketMQ] Upgrade to RocketMQ 4.9.2(#2406)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @zkzlx
    • @steverao
    • @yuhuangbin
    • @sczyh30
    • @DanielLiu1123
    • @jumkey
    • @Roger3581321
    • @galaxy-sea
    • @ovasty
    Source code(tar.gz)
    Source code(zip)
  • 2.2.7.RELEASE(Dec 2, 2021)

    ⭐️ Features / Enhancements

    • [RocketMQ] Merged 2.2.5-RocketMQ-RC.RELEASE to 2.2.7.RELEASE(#2302)
    • [Sidecar] SidecarHealthChecker added CustomerHandler(#2208)
    • [Nacos] NacosServiceRegistry optimization(#2185)
    • [Nacos] NacosWatch optimization(#1194)

    🐞 Bug Fixes

    • [Common] Fixed contact infomation invalid(#2278)
    • [RocketMQ] Fixed variable judgment bug(#2258)
    • [Nacos] Fixed NacosWatch can't be shutdown(#2253)
    • [Nacos Config] Fixed document content wrong(#2227)
    • [Common] Fixed document content wrong(#2202)
    • [Consul] Fixed register metadata to Consul failed(#2157)

    📔 Reference Document

    2.2.7.RELEASE is compatible with Spring Cloud Hoxton.SR12, cheers!🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Dubbo] Upgrade to Dubbo 2.7.13(#2249)
    • [Spring Cloud] Upgrade to Spring Cloud Hoxton.SR12(#2242)
    • [Spring Boot] Upgrade to Spring Boot 2.3.12.RELEASE(#2242)
    • [Nacos] Upgrade to Nacos 2.0.3(#2241)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @zkzlx
    • @steverao
    • @yuhuangbin
    • @mercyblitz
    • @panzhi33
    • @Pengfei-Lu
    • @theonefx
    • @misselvexu
    Source code(tar.gz)
    Source code(zip)
  • 2.2.6.RELEASE(Jul 12, 2021)

    ⭐️ Features / Enhancements

    • [Nacos Discovery]

      • support for registration of quick failed configuration items https://github.com/alibaba/spring-cloud-alibaba/pull/2104
    • [Dubbo]

      • using revision to refact dubbo integration https://github.com/alibaba/spring-cloud-alibaba/pull/2101 https://github.com/alibaba/spring-cloud-alibaba/pull/2121

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix nacos don't work in k8s if dns not work https://github.com/alibaba/nacos/issues/5291
      • fix that the instance could not be obtained when the instance was not under the default group https://github.com/alibaba/spring-cloud-alibaba/pull/2113
      • fix NacosWatch impact zipkin tracing #2140
    • [Dubbo]

      • fix that group aggregation didn't wok in SCA https://github.com/alibaba/spring-cloud-alibaba/pull/1992
      • fix that SCA dubbo TagRouter metadata error https://github.com/alibaba/spring-cloud-alibaba/issues/2031 https://github.com/alibaba/spring-cloud-alibaba/pull/2037
      • fix that "No Provider Available From Registry "occurring during service changes https://github.com/alibaba/spring-cloud-alibaba/issues/2007
      • fix dubbo cloud can't register to consule correctly #2157
    • [Sentinel]

      • fix that ak/sk not works on sentinel with NacosDataSource https://github.com/alibaba/spring-cloud-alibaba/pull/2135
      • fix can't generate SentinelFeignClient #2137 #2122 #2107
      • fix exception lost when using resttemplate #2044 #1346
    • [Docs]

      • doc improve https://github.com/alibaba/spring-cloud-alibaba/pull/2090 https://github.com/alibaba/spring-cloud-alibaba/pull/2050
      • add Weight Route #2159
    • [Examples]

      • sample code reformat https://github.com/alibaba/spring-cloud-alibaba/pull/2015

    📔 Reference Document

    2.2.6.RELEASE is compatible with Spring Cloud Hoxton.SR9, cheers!🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.4.2 https://github.com/alibaba/spring-cloud-alibaba/pull/2097

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @yuhuangbin
    • @theonefx
    • @terminux
    • @yang-xiaobai
    • @eden-yuan
    • @captainkun
    • @wangzhenxyz1
    • @tangyuewei
    • @DHBin
    Source code(tar.gz)
    Source code(zip)
  • 2.2.6.RC1(Jul 5, 2021)

    ⭐️ Features / Enhancements

    • [Nacos Discovery]

      • support for registration of quick failed configuration items https://github.com/alibaba/spring-cloud-alibaba/pull/2104
    • [Dubbo]

      • using revision to refact dubbo integration https://github.com/alibaba/spring-cloud-alibaba/pull/2101 https://github.com/alibaba/spring-cloud-alibaba/pull/2121

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix nacos don't work in k8s if dns not work https://github.com/alibaba/nacos/issues/5291
      • fix that the instance could not be obtained when the instance was not under the default group https://github.com/alibaba/spring-cloud-alibaba/pull/2113
    • [Dubbo]

      • fix that group aggregation didn't wok in SCA https://github.com/alibaba/spring-cloud-alibaba/pull/1992
      • fix that SCA dubbo TagRouter metadata error https://github.com/alibaba/spring-cloud-alibaba/issues/2031 https://github.com/alibaba/spring-cloud-alibaba/pull/2037
      • fix that "No Provider Available From Registry "occurring during service changes https://github.com/alibaba/spring-cloud-alibaba/issues/2007
    • [Sentinel]

      • fix that ak/sk not works on sentinel with NacosDataSource https://github.com/alibaba/spring-cloud-alibaba/pull/2135
    • [Docs]

      • doc improve https://github.com/alibaba/spring-cloud-alibaba/pull/2090 https://github.com/alibaba/spring-cloud-alibaba/pull/2050
    • [Examples]

      • sample code reformat https://github.com/alibaba/spring-cloud-alibaba/pull/2015

    📔 Reference Document

    2.2.6.RC1 is compatible with Spring Cloud Hoxton.SR9, cheers!🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.4.2 https://github.com/alibaba/spring-cloud-alibaba/pull/2097

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @yuhuangbin
    • @theonefx
    • @terminux
    • @yang-xiaobai
    • @eden-yuan
    • @captainkun
    • @wangzhenxyz1
    • @tangyuewei
    • @DHBin
    Source code(tar.gz)
    Source code(zip)
  • 2021.1(Apr 9, 2021)

    2021.1 is compatible with Spring Cloud 2020.0, cheers!🍺

    This release is based on 2.2.5 and completes the Spring Cloud 2020.0 adaptation. And this is the first version that supports the 2020 version of spring cloud.

    Source code(tar.gz)
    Source code(zip)
  • 2.2.5-RocketMQ-RC1(Apr 9, 2021)

    鉴于rocketmq-client版本迭代速度较快,而现release版本中stream-rocketmq使用的client版本比较老,很多rocketmq新特性也无法支持; 通过对issues的整理与内部讨论,现对stream-rocketmq做了一次重构,在使用上部分发生了变化,在修复bug的同时也增加了很多内容,如下: 1、剥离 RocketMQ Spring Boot Starter,主要方便自定义功能 2、修复RocketMQ消息失败的反馈 3、规范了内部部分bean的签名 4、支持批量消费 5、支持异步消息回调处理 6、支持MessageConverter机制 7、支持自定义CustomizedTraceTopic 8、支持自定义消费最大重试次数 9、支持Push模式下指定消费起始位 10、支持自定义延迟消息的延迟等级(定时消息需要自行通过header处理) 11、支持阿里云rocketmq对接(没有充分测试) 12、支持可能常用bean的自定义,需要在配置中指定beanName;如MessageConverter, AllocateMessageQueueStrategy,MessageQueueSelector, MessageListener, TransactionListener,SendCallback, SendMessageHook,ErrorAcknowledgeHandler 13、使用上主要体现在配置参数的变化,这次跨度比较大,就没有做兼容处理;因为剥离了rocketmq-boot则相关注解无法直接使用,需自行引入依赖

    后续计划: 1、支持consumer多个订阅 2、对spring stream 原生配置参数将充分利用 3、兼容RocketMQ Spring Boot Starter 4、弱化现有的强依赖关系绑定,为后续的pop消费做准备

    当前rc版本的更新,必定有很多不足的地方,欢迎各位大佬参与和指导,社区有你更精彩。

    Source code(tar.gz)
    Source code(zip)
  • 2020.0.RC1(Mar 22, 2021)

    2020.0.RC1 is compatible with Spring Cloud 2020.0, cheers!🍺

    This is the first version that supports the 2020 version of spring cloud, We will release the release version as soon as possible.

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    Source code(tar.gz)
    Source code(zip)
  • 2.0.4.RELEASE(Mar 22, 2021)

    ⭐️ Features / Enhancements

    • [Nacos Discovery] Optimize the way to get NacosWatch#ThreadPoolTaskScheduler #1823

    • [Nacos Config] Improved nacos configuration parsing #1531

    • [Dubbo] Add new endpoints #1949

    • [RocketMq] use AbstractMessageChannel.getInterceptors() to replace ChannelInterceptorAware.getChannelInterceptors() #1503

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix Error occurred when using the endpoint /actuator/service-registry to unregister the service registration #1893
      • fix Heart beat unit second didn't match nacos unit millisecond #1877
      • fix UnsatisfiedDependencyException when use nacos-discovery with spring-cloud-config #1791
    • [Dubbo]

      • fix sometimes the consumer can not find the service when calling #1895 #1805
      • fix NPE exception when using grpc protocol #1903
      • fix occasionally can not find provider problem #1950 #1940 #1936
    • [Nacos Config]

      • fix EndpointId logWarning #1780
      • fixed chinese garbled for nacos-config #1939
    • [Seata]

      • fix Compatibility issue with seata-all-1.4.0 #1800
      • fix seata-examples project name #1775
      • add timeout config of seata-examples #1771
    • [Docs]

      • fix Add a missing configuration item of NacosDiscovery #1772

    📔 Reference Document

    2.0.4.RELEASE is compatible with Spring Cloud Finchley, cheers!🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.4.1 #1920

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @delicious-z
    • @zongyl
    • @eden-yuan
    • @Roger3581321
    • @zhongguangxi
    • @lltx
    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @wangliang181230
    • @Flyfoxs
    • @brothelul
    • @github-ganyu
    • @horizonzy
    • @zkzlx
    Source code(tar.gz)
    Source code(zip)
  • 2.1.4.RELEASE(Mar 22, 2021)

    ⭐️ Features / Enhancements

    • [Nacos Discovery] Optimize the way to get NacosWatch#ThreadPoolTaskScheduler #1823

    • [Nacos Config] Improved nacos configuration parsing #1531

    • [Dubbo] Add new endpoints #1949

    • [RocketMq] use AbstractMessageChannel.getInterceptors() to replace ChannelInterceptorAware.getChannelInterceptors() #1503

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix Error occurred when using the endpoint /actuator/service-registry to unregister the service registration #1893
      • fix Heart beat unit second didn't match nacos unit millisecond #1877
      • fix UnsatisfiedDependencyException when use nacos-discovery with spring-cloud-config #1791
    • [Dubbo]

      • fix sometimes the consumer can not find the service when calling #1895 #1805
      • fix NPE exception when using grpc protocol #1903
      • fix occasionally can not find provider problem #1950 #1940 #1936
    • [Nacos Config]

      • fix EndpointId logWarning #1780
      • fixed chinese garbled for nacos-config #1939
    • [Seata]

      • fix Compatibility issue with seata-all-1.4.0 #1800
      • fix seata-examples project name #1775
      • add timeout config of seata-examples #1771
    • [Docs]

      • fix Add a missing configuration item of NacosDiscovery #1772

    📔 Reference Document

    2.1.4.RELEASE is compatible with Spring Cloud Greenwich.SR6, cheers!🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.4.1 #1920

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @delicious-z
    • @zongyl
    • @eden-yuan
    • @Roger3581321
    • @zhongguangxi
    • @lltx
    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @wangliang181230
    • @Flyfoxs
    • @brothelul
    • @github-ganyu
    • @horizonzy
    • @zkzlx
    Source code(tar.gz)
    Source code(zip)
  • 2.2.5.RELEASE(Feb 1, 2021)

    ⭐️ Features / Enhancements

    • [Nacos Discovery] Optimize the way to get NacosWatch#ThreadPoolTaskScheduler #1823

    • [Nacos Config] Improved nacos configuration parsing #1531

    • [Dubbo] Add new endpoints #1949

    • [RocketMq] use AbstractMessageChannel.getInterceptors() to replace ChannelInterceptorAware.getChannelInterceptors() #1503

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix Error occurred when using the endpoint /actuator/service-registry to unregister the service registration #1893
      • fix Heart beat unit second didn't match nacos unit millisecond #1877
      • fix UnsatisfiedDependencyException when use nacos-discovery with spring-cloud-config #1791
    • [Dubbo]

      • fix sometimes the consumer can not find the service when calling #1895 #1805
      • fix NPE exception when using grpc protocol #1903
      • fix occasionally can not find provider problem #1950 #1940 #1936
    • [Nacos Config]

      • fix EndpointId logWarning #1780
      • fixed chinese garbled for nacos-config #1939
    • [Seata]

      • fix Compatibility issue with seata-all-1.4.0 #1800
      • fix seata-examples project name #1775
      • add timeout config of seata-examples #1771
    • [Docs]

      • fix Add a missing configuration item of NacosDiscovery #1772

    📔 Reference Document

    2.2.5.RELEASE is compatible with Spring Cloud Hoxton.SR8, cheers!🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.4.1 #1920

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @delicious-z
    • @zongyl
    • @eden-yuan
    • @Roger3581321
    • @zhongguangxi
    • @lltx
    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @wangliang181230
    • @Flyfoxs
    • @brothelul
    • @github-ganyu
    • @horizonzy
    • @zkzlx
    Source code(tar.gz)
    Source code(zip)
  • 2.2.4.RELEASE(Jan 17, 2021)

    重要提醒

    请不要使用这个版本,这个版本包含一个显著的问题,我们已经在 2.2.5.RC1 中修复了该问题

    Please do not use this version, this version contains a significant issue, which we have fixed in 2.2.5.RC1

    2.2.5.RC1

    Source code(tar.gz)
    Source code(zip)
  • 2.0.3.RELEASE(Sep 22, 2020)

    ⭐️ Features / Enhancements

    • [Nacos Discovery]

      • NacosWatch to update local metadata #1704
      • Nacos namingService support dynamic switching #1698
      • Adding the destroy lifecycle callback for NamingService #1638
      • Adding NacosRegistrationCustomizer #1495
      • Supporting ephemeral Nacos ServiceInstance #1488
      • NacosDiscoveryClient always getNamingservice from Nacosmanager #1724
    • [Nacos Config]

    • [Sidecar]

      • Sidecar health detection optimization #1686
    • [Sentinel]

      • RedisDataSourceProperties's masterId logic error #1622
    • [Seata]

    • [Dubbo]

    • [RocketMQ]

      • Use AbstractMessageChannel.getInterceptors() to replace ChannelInterceptorAware.getChannelInterceptors() #1503
    • [Commons]

      • Remove useless properties in pom.xml #1737

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix NacosServiceDiscovery.hostToServiceInstance method potential NullPointerException #1536
      • fix HeartBeatEvent issue #1728
      • fix dependencies cycle issue #1742
    • [Nacos Config]

      • fix the issue of the loading order of Nacos Config #1483
    • [Docs]

      • fix the code issue on documents #1646
      • fix nacos-discovery-example readme doc #1511
      • update nacos-config.adoc #1618
      • fix incorrect word in nacos-config.adoc #1484
    • [Sentinel]

      • RedisDataSourceProperties's masterId logic error #1622
      • to avoid k8s readinessProbe remove the pod #1586

    📔 Reference Document

    2.0.3.RELEASE is compatible with Spring Cloud Finchley, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.3.3 (#1738)
    • [Spring Cloud] Upgrade to spring-cloud-dependencies-parent 2.3.1.RELEASE #1737
    • [Seata] Upgrade to Seata 1.3.0 (#1650)
    • [Sentinel] Upgrade to Sentinel 1.8.0 (#issues)
    • [Dubbo] Upgrade to Apache Dubbo 2.7.8 (#1624)
    • [Commons] Upgrade to Alibaba's Spring Context Support 1.0.10 (#1736)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @spillage
    • @HaojunRen
    • @delicious-zen
    • @SunJiFengPlus
    • @J-Cod3r
    • @ChixianGen
    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @slievrly
    • @sczyh30
    • @mostcool
    Source code(tar.gz)
    Source code(zip)
  • 2.1.3.RELEASE(Sep 18, 2020)

    ⭐️ Features / Enhancements

    • [Nacos Discovery]

      • NacosWatch to update local metadata #1704
      • Nacos namingService support dynamic switching #1698
      • Adding the destroy lifecycle callback for NamingService #1638
      • Adding NacosRegistrationCustomizer #1495
      • Supporting ephemeral Nacos ServiceInstance #1488
      • NacosDiscoveryClient always getNamingservice from Nacosmanager #1724
    • [Nacos Config]

    • [Sidecar]

      • Sidecar health detection optimization #1686
    • [Sentinel]

      • RedisDataSourceProperties's masterId logic error #1622
    • [Seata]

    • [Dubbo]

    • [RocketMQ]

      • Use AbstractMessageChannel.getInterceptors() to replace ChannelInterceptorAware.getChannelInterceptors() #1503
    • [Commons]

      • Remove useless properties in pom.xml #1737

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix NacosServiceDiscovery.hostToServiceInstance method potential NullPointerException #1536
      • fix HeartBeatEvent issue #1728
      • fix dependencies cycle issue #1742
    • [Nacos Config]

      • fix the issue of the loading order of Nacos Config #1483
    • [Docs]

      • fix the code issue on documents #1646
      • fix nacos-discovery-example readme doc #1511
      • update nacos-config.adoc #1618
      • fix incorrect word in nacos-config.adoc #1484
    • [Sentinel]

      • RedisDataSourceProperties's masterId logic error #1622
      • to avoid k8s readinessProbe remove the pod #1586

    📔 Reference Document

    2.1.3.RELEASE is compatible with Spring Cloud Greenwich.SR6, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.3.3 (#1738)
    • [Spring Cloud] Upgrade to spring-cloud-dependencies-parent 2.3.1.RELEASE #1737
    • [Seata] Upgrade to Seata 1.3.0 (#1650)
    • [Sentinel] Upgrade to Sentinel 1.8.0 (#issues)
    • [Dubbo] Upgrade to Apache Dubbo 2.7.8 (#1624)
    • [Commons] Upgrade to Alibaba's Spring Context Support 1.0.10 (#1736)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @spillage
    • @HaojunRen
    • @delicious-zen
    • @SunJiFengPlus
    • @J-Cod3r
    • @ChixianGen
    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @slievrly
    • @sczyh30
    • @mostcool
    Source code(tar.gz)
    Source code(zip)
  • 2.2.3.RELEASE(Sep 18, 2020)

    ⭐️ Features / Enhancements

    • [Nacos Discovery]

      • NacosDiscoveryClient always getNamingservice from Nacosmanager #1724
    • [Commons]

      • Remove useless properties in pom.xml #1737

    🐞 Bug Fixes

    • [Nacos Discovery]
      • fix NacosServiceDiscovery.hostToServiceInstance method potential NullPointerException #1536
      • fix HeartBeatEvent issue #1728
      • fix dependencies cycle issue #1742

    📔 Reference Document

    2.2.3.RELEASE is compatible with Spring Cloud Hoxton.SR8, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.3.3 (#1738)
    • [Commons] Upgrade to Alibaba's Spring Context Support 1.0.10 (#1736)
    • [Spring Cloud] Upgrade to spring-cloud-dependencies-parent 2.3.1.RELEASE #1737

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @Spillage
    • @HaojunRen
    • @mostcool
    • @yuhuangbin
    • @mercyblitz
    Source code(tar.gz)
    Source code(zip)
  • 2.2.2.RELEASE(Sep 12, 2020)

    ⭐️ Features / Enhancements

    • [Nacos Discovery]

      • NacosWatch to update local metadata #1704
      • Nacos namingService support dynamic switching #1698
      • Adding the destroy lifecycle callback for NamingService #1638
      • Adding NacosRegistrationCustomizer #1495
      • Supporting ephemeral Nacos ServiceInstance #1488
    • [Nacos Config]

    • [Sidecar]

      • Sidecar health detection optimization #1686
    • [Sentinel]

      • RedisDataSourceProperties's masterId logic error #1622
    • [Seata]

    • [Dubbo]

    • [RocketMQ]

      • Use AbstractMessageChannel.getInterceptors() to replace ChannelInterceptorAware.getChannelInterceptors()

    #1503

    🐞 Bug Fixes

    • [Nacos Discovery]

      • fix NacosServiceDiscovery.hostToServiceInstance method potential NullPointerException #1536
    • [Nacos Config]

      • fix the issue of the loading order of Nacos Config #1483
    • [Docs]

      • fix the code issue on documents #1646
      • fix nacos-discovery-example readme doc #1511
      • update nacos-config.adoc #1618
      • fix incorrect word in nacos-config.adoc #1484
    • [Sentinel]

      • RedisDataSourceProperties's masterId logic error #1622
      • to avoid k8s readinessProbe remove the pod #1586

    📔 Reference Document

    2.2.2.RELEASE is compatible with Spring Cloud Hoxton.SR8, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.3.2 (#1631)
    • [Seata] Upgrade to Seata 1.3.0 (#1650)
    • [Sentinel] Upgrade to Sentinel 1.8.0 (#issues)
    • [Dubbo] Upgrade to Apache Dubbo 2.7.8 (#1624)
    • [Commons] Upgrade to Alibaba's Spring Context Support 1.0.9 (#1625)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @delicious-zen
    • @SunJiFengPlus
    • @J-Cod3r
    • @ChixianGen
    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @slievrly
    • @sczyh30
    • @mercyblitz
    Source code(tar.gz)
    Source code(zip)
  • 2.0.2.RELEASE(Apr 15, 2020)

    ⭐️ Features / Enhancements

    • [Project] Migratiing Aliyun commercial components to aliyun-spring-boot
    • [Project] Updating the building dependencies #1326
    • [Project] Combining the code-based and starter modules #1222
    • [Project] Renaming spring-cloud-starter-alibaba to be spring-cloud-alibaba-starters #1283
    • [Project] Reorganizing the modules of documents and samples #1223
    • [Project] Removing the commercial components from the code base #1281
    • [Common] Using @ConditionalOnEnabledHealthIndicator to conditional assembly #1280
    • [Common] Removing the force dependency code of spring-cloud in AliCloudContextAutoCo… #1240
    • [Nacos Config] healthcheck switch config property #1237
    • [Sentinel] Supporting ConsulDataSource Dynamic Rule Configuration #1318
    • [Seata] Optimizing SeataHystrixConcurrencyStrategy #1339
    • [Dubbo] Being Compatible with Dubbo 2.7.5 #1311

    🐞 Bug Fixes

    • [Sidecar] registers port and group to nacos #1295
    • [Dubbo] Nacos is used as the registration center, the network parameters of the server change, and the client continues to connect the server with the old parameters #1259
    • [Dubbo] removeMetadataAndInitializedService's bug #1260
    • [Dubbo] NettyClient has not realized service discovery #1253
    • [Dubbo] fix document link error #1306
    • [Dubbo] fix Sentinel zuul NPE #1217

    📔 Reference Document

    2.0.2.RELEASE is compatible with Spring Cloud Finchley SR2, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.2.1 (#1154)
    • [Seata] Upgrade to Seata 1.1.0 (#1211)
    • [Dubbo] Upgrade to Apache Dubbo 2.7.6 (#1342)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @slievrly
    • @lcg72
    • @wangzihaogithub
    • @fudali113
    • @illlight
    • @mercyblitz
    Source code(tar.gz)
    Source code(zip)
  • 2.1.2.RELEASE(Apr 14, 2020)

    ⭐️ Features / Enhancements

    • [Project] Migratiing Aliyun commercial components to aliyun-spring-boot
    • [Project] Updating the building dependencies #1326
    • [Project] Combining the code-based and starter modules #1222
    • [Project] Renaming spring-cloud-starter-alibaba to be spring-cloud-alibaba-starters #1283
    • [Project] Reorganizing the modules of documents and samples #1223
    • [Project] Removing the commercial components from the code base #1281
    • [Common] Using @ConditionalOnEnabledHealthIndicator to conditional assembly #1280
    • [Common] Removing the force dependency code of spring-cloud in AliCloudContextAutoCo… #1240
    • [Nacos Config] healthcheck switch config property #1237
    • [Sentinel] Supporting ConsulDataSource Dynamic Rule Configuration #1318
    • [Seata] Optimizing SeataHystrixConcurrencyStrategy #1339
    • [Dubbo] Being Compatible with Dubbo 2.7.5 #1311

    🐞 Bug Fixes

    • [Sidecar] registers port and group to nacos #1295
    • [Dubbo] Nacos is used as the registration center, the network parameters of the server change, and the client continues to connect the server with the old parameters #1259
    • [Dubbo] removeMetadataAndInitializedService's bug #1260
    • [Dubbo] NettyClient has not realized service discovery #1253
    • [Dubbo] fix document link error #1306
    • [Dubbo] fix Sentinel zuul NPE #1217

    📔 Reference Document

    2.1.2.RELEASE is compatible with Spring Cloud Greenwich SR5, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.2.1 (#1154)
    • [Seata] Upgrade to Seata 1.1.0 (#1211)
    • [Dubbo] Upgrade to Apache Dubbo 2.7.6 (#1342)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @slievrly
    • @lcg72
    • @wangzihaogithub
    • @fudali113
    • @illlight
    • @mercyblitz
    Source code(tar.gz)
    Source code(zip)
  • 2.2.1.RELEASE(Apr 13, 2020)

    ⭐️ Features / Enhancements

    • [Project] Migratiing Aliyun commercial components to aliyun-spring-boot
    • [Project] Updating the building dependencies #1326
    • [Project] Combining the code-based and starter modules #1222
    • [Project] Renaming spring-cloud-starter-alibaba to be spring-cloud-alibaba-starters #1283
    • [Project] Reorganizing the modules of documents and samples #1223
    • [Project] Removing the commercial components from the code base #1281
    • [Common] Using @ConditionalOnEnabledHealthIndicator to conditional assembly #1280
    • [Common] Removing the force dependency code of spring-cloud in AliCloudContextAutoCo… #1240
    • [Nacos Config] healthcheck switch config property #1237
    • [Sentinel] Supporting ConsulDataSource Dynamic Rule Configuration #1318
    • [Seata] Optimizing SeataHystrixConcurrencyStrategy #1339
    • [Dubbo] Being Compatible with Dubbo 2.7.5 #1311

    🐞 Bug Fixes

    • [Sidecar] registers port and group to nacos #1295
    • [Dubbo] Nacos is used as the registration center, the network parameters of the server change, and the client continues to connect the server with the old parameters #1259
    • [Dubbo] removeMetadataAndInitializedService's bug #1260
    • [Dubbo] NettyClient has not realized service discovery #1253
    • [Dubbo] fix document link error #1306
    • [Dubbo] fix Sentinel zuul NPE #1217

    📔 Reference Document

    2.2.1.RELEASE is compatible with Spring Cloud Hoxton SR3, cheers! 🍺

    Spring Cloud Alibaba is live on Spring Initializr and Aliyun Java Initializr now!

    🔨 Dependency Upgrades

    • [Nacos] Upgrade to Nacos Client 1.2.1 (#1154)
    • [Seata] Upgrade to Seata 1.1.0 (#1211)
    • [Dubbo] Upgrade to Apache Dubbo 2.7.6 (#1342)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @fangjian0423
    • @theonefx
    • @yuhuangbin
    • @slievrly
    • @lcg72
    • @wangzihaogithub
    • @fudali113
    • @illlight
    • @mercyblitz
    Source code(tar.gz)
    Source code(zip)
  • v2.2.0.RELEASE(Feb 12, 2020)

    ⭐️ Features / Enhancements

    • Add NacosDiscoveryHealthIndicator(#902)
    • NacosWatch optimization(#1194)
    • NacosServiceRegistry throw Exception when register failed(#1132)
    • Seata support FeignBlockingLoadBalancerClient by SeataFeignBlockingLoadBalancerClient(#1092)
    • Update auto-configuration to use @Configuration(proxyBeanMethods=false)(#1090)
    • Support ReactiveDiscoveryClient with Nacos Discovery(#981)
    • Use SentinelWebInterceptor instead of CommonFilter(#1168)
    • Add Nacos Discovery & Nacos Configuration default server address(#980)
    • Moving Spring Cloud CircuitBreaker Sentinel to Spring Cloud Alibaba(#899)
    • RocketMQBinderConfigurationProperties#nameServer offer a more user-friendly format(#1054)
    • Nacos suport Ribbon ConfigurationBasedServerList(#1112)
    • Add property to disable Spring Cloud CircuitBreaker Sentinel auto-configuration(#1091)
    • Enhance Nacos configuration: add sharedConfigs and extensionConfigs to support group and profile(#982, #978)

    🐞 Bug Fixes

    • Fix NacosConfigHealthIndicator always be UP in any status(#1196)
    • Fix NacosConfiguration can't be auto-registed in Dubbo Spring Cloud(#1193)
    • Resolve the type erase caused by loading Nacos data (#1162)
    • Fix the order of configuration items parsed by Nacos(#987)

    📔 Reference Document

    English Version: https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/en-us/index.html

    Chinese Version(中文): https://spring-cloud-alibaba-group.github.io/github-pages/hoxton/zh-cn/index.html

    2.2.0.RELEASE is the first release version about Spring Cloud Hoxton compatible, and it's based on Hoxton.RELEASE, cheers! 🍺

    Alibaba is live on Spring Initializr now!

    🔨 Dependency Upgrades

    • Upgrade to Seata 1.0.0(#1154)
    • Upgrade to Sentinel 1.7.1(#1168)
    • Upgrade to Apache Dubbo 2.7.4.1(#1192)

    ❤️ Contributors

    Thanks for the contributors who worked on this release!

    • @fangjian0423
    • @yuhuangbin
    • @slievrly
    • @mercyblitz
    • @LiuJunJie
    • @zkzlx
    • @luhggit
    • @echooymxq
    • @631359746
    • @chuntaojun
    • @qixiaobo
    • @pigxcloud
    Source code(tar.gz)
    Source code(zip)
  • v2.1.1.RELEASE(Nov 15, 2019)

    Features / Enhancements

    • Adding module Spring Cloud Alibaba Sidecar(#941)
    • BOM has dependency management for non direct dependencies(#911)
    • OssStorageResource support WritableResource(#930)
    • Nacos Discovery support GROUP(#886)
    • Nacos Config support json and xml format(#698)
    • SentinelRestTemplate support UrlClean(#762)
    • Nacos Config support more configuration items(#809)
    • Enhance RocketMQ Binder header value codec(#737)
    • Use partition to implement RocketMQ queue selection(#733)
    • Adding reconsume times in header(#815)
    • Disable Sentinel web filters when using Sentinel gateway starters(#821)
    • Adding spring.cloud.nacos.server-addr configuration item(#831)
    • SentinelFeign support FeignClient contextId(#793)
    • Adding a failure analyzer for Nacos Config(#998)
    • Customize getting service instance in service subscribe(#923)
    • Upgrade to Spring Cloud Greenwich.SR3(#938)
    • Remove apache dependencies in BOM
    • Dependency update: nacos to 1.1.4, sentinel to 1.7.0, seata to 0.9.0, dubbo to 2.7.3

    Bug fixes

    • Fix Nacos cpu load problem(#859)
    • Fix NacosConfigHealthIndicator always in UP state(#855)
    • Fix Dubbo provider and consumer startup sequence problem(#874)
    • Advance adapt Dubbo RestTemplates(#905)

    This is the last release for Spring Cloud Edgware, refer https://github.com/alibaba/spring-cloud-alibaba/issues/974.

    Thanks for the contributors: @fangjian0423 @mercyblitz @zhaoyuguang @liudaomanbu @chuntaojun @Rivers-Shall @xiejiashuai @echooymxq @wangxing-git @lyuzb @liuxx001 @flystar32 @purgeyao @zkzlx @HaojunRen @yidadi @panda-luo @sundong1982 @pigxcloud @AbelSara

    Source code(tar.gz)
    Source code(zip)
  • v2.0.1.RELEASE(Nov 16, 2019)

  • v1.5.1.RELEASE(Nov 15, 2019)

  • v2.1.0.RELEASE(Aug 1, 2019)

    • support Greenwich.SR2

    • support Finchley.SR4

    • Sentinel

      • sentinel upgrade to 1.6.3. The releases of sentinel refer: https://github.com/alibaba/Sentinel/releases
      • support Spring Cloud Gateway, spring-cloud-alibaba-sentinel-zuul rename to spring-cloud-alibaba-sentinel-gateway #615
      • support WebFlux, spring-cloud-alibaba-starter-sentinel adapt WebServlet & WebFlux AutoConfiguration #614
      • fix Feign with Sentinel in Inheritance interface will throw NPE #626
      • fix NPE when invoke default method in Feign interface #782
      • add configuration properties about gateway and http-method-specify #741 #615
      • optimized the loading logic of SlotChainBuilder to ensure that HotParamSlotChainBuilder takes effect in non-gateway scenarios, and GatewaySlotChainBuilder takes effect in the gateway scenario. #716
      • delete the DataSource loading log, which is implemented by Sentinel's own SPI (future implementation #707
      • add HealthIndicator to check Server(connect with dashboard) and DataSource are healthy or not #265
    • Nacos Discovery

      • nacos-client upgrade to 1.1.1。The releases of nacos refer: https://github.com/alibaba/nacos/releases
      • support customized beat interval of Nacos client #765
      • add NacosRule to support weight algorithm #669
      • support ServiceRegistryEndpoint to query/update service status #728
      • Spring Cloud Config can be used with Nacos Discovery together #708
      • support ServerIntrospector #650
      • delete internal logic in NacosWatch, only send the HeartbeatEvent event #644
    • Nacos Config

      • nacos-client upgrade to 1.1.1。The releases of nacos refer: https://github.com/alibaba/nacos/releases
      • fix thread-unsafe problem #652
    • RocketMQ Binder

      • support MessageSource #541
      • fix bug about the rebalance error in Aliware MQ in different jvm of same machine #709
    • Dubbo Spring Cloud

      • dubbo upgrade to 2.7.3. The releases of dubbo refer: https://github.com/apache/dubbo/releases
      • uses InetUtils to set IP #589
      • removes spring-cloud://localhost property #592
      • add a listening mechanism for the service instances change #623
      • fix bugs that start reporting NPE in some scenarios #591
      • change the dependency of spring-boot-actuator to be optional #600
    • Seata

      • seata upgrade to 0.7.1. The releases of seata refer:: https://github.com/seata/seata/releases
      • fix loadbalance feignclient bug #686

    Thanks for the contributors: @Rivers-Shall, @ly641921791, @JevonYang, @cdfive, @eacdy, @pyhblacksky, @george510257, @AbelSara, @slievrly, @pigxcloud, @lovepoem, @liudaomanbu, @lujian0571, @jsbxyyx, @pengzai170, @hero-zhanghao, @wzlee, @xingfudeshi

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0.RELEASE(Aug 1, 2019)

  • v1.5.0.RELEASE(Aug 1, 2019)

  • v0.9.0.RELEASE(Apr 22, 2019)

    Features / Enhancements

    • RocketMQ Binder refactor and integrates with RocketMQ Spring Boot. (#259)
    • Add spring-cloud-alibaba-dubbo module. (#263)
    • Add spring-cloud-alibaba-sentinel-zuul module. (#58)
    • Add spring-cloud-alibaba-fescar module. (#303)
    • Add spring-cloud-alicloud-sms module. (#492)
    • Naocs Discovery support connect to Alibaba Cloud (#357)
    • Sentinel Endpoint show more information. (#490)
    • Nacos Discovery support HeartbeatEvent. (#283)
    • Add "resttemplate.sentinel.enabled" property to enable/disable @SentinelRestTemplate. (#426)
    • Add more configurations for SentinelProperties. (#489)
    • Using @EnableDiscoveryClient optional. (#333)
    • Optimize CircuitBreaking in RestTemplate. (#482)
    • RocketMq Binder Adapt Ons Binder. (#145)
    • Add ruleType property for Sentinel AbstractDataSourceProperties. (#219)
    • Nacos Service Discovery support the non-web environment. (#267)
    • RocketMQ Binder enhance error handle. (#245)
    • Nacos Discovery namespace support isolate the data. (#317)
    • Dubbo Services Registration uses Spring Cloud registry abstraction. (#269)
    • Add @DubboTransported Annotation. (#348)
    • Support @LoadBalanced RestTemplate using Dubbo protocol. (#340)
    • Dubbo Spring Cloud supports Spring official service registries. (#386)
    • Add Nacos Discovery/Config switch property. (#411,#347)
    • Add broadcasting property for rocketmq bus. (#493)

    Bug fixes

    • @SentinelRestTemplate won't add interceptor when RestTemplate annotated by @Bean annotation and construct in @Configuration class. (#227)
    • Rules can not be updated when Dynamic Rule DataSource load empty data for the first time. (#206)
    • Sentinel Support @EnableCircuitBreaker. (#294)
    • Fix SchedulerX circular reference bug. (#491)
    • Failed to startup application when disabled sentinel. (#527)

    Thanks for the contributors:@yunzheng1228, @tigerMoon, @slievrly, @mostcool, @pig4cloud, @carlWangTao, @yanglbme, @codewaltz1994, @caojiele, @JakeConnors376W, @Harris2012, @justlive1, MaoJianwei, bluesword12350

    Source code(tar.gz)
    Source code(zip)
An integration solution for Spring Cloud and Tencent middleware - Spring Cloud和腾讯中间件的集成方案

Spring Cloud Tencent English | 简体中文 Introduction Spring Cloud Tencent contains components distributed micro-service applications need during developin

Tencent 2.6k Dec 29, 2022
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024

友情提示:因为提供了 50000+ 行示例代码,所以艿艿默认注释了所有 Maven Module。 胖友可以根据自己的需要,修改 pom.xml 即可。 一个涵盖六个主流技术栈的正经仓库: 《Spring Boot 专栏》 《Spring Cloud Alibaba 专栏》 《Spring Clou

芋道源码 15.7k Dec 31, 2022
A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency

A spring cloud infrastructure provides various of commonly used cloud components and auto-configurations for high project consistency.

Project-Hephaestus 2 Feb 8, 2022
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Hoxton & Alibaba、Spring Boot 2.3、Oauth2、MyBatis、Docker、Elasticsearch、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全,附带全套Spring Cloud教程。

mall-swarm 友情提示 快速体验项目:在线访问地址。 全套学习教程:《mall学习教程》。 Spring Cloud全套教程:《SpringCloud学习教程》。 专属学习路线:学习不走弯路,整理了套非常不错的《mall专属学习路线》。 项目交流:想要加群交流项目的朋友,可以加入mall项目

macro 9.7k Jan 3, 2023
芋道 mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。

[toc] 友情提示:近期在升级和优化该项目,建议先 Star 本项目。主要在做几个事情: 1、微服务技术选型以 Spring Cloud Alibaba 为中心。 2、修改项目分层,并合并部分服务,简化整体服务的复杂性。 3、将管理后台从 React 重构到 Vue 框架。 交流群:传送门 前言

芋道源码 7k Jan 6, 2023
Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker.

spring-microservice Demo microservice architecture with Spring ,Spring Cloud Gateway , Spring Cloud config server , Eureuka , keycloak and Docker. Arc

null 4 Sep 13, 2022
企业级 Spring Cloud Alibaba 微服务脚手架,nacos 配置中心、Oauth2认证与鉴权、Docker 容器化部署,开发环境一键式脚本安装,10分钟即可构建

云龙 Cloud Dragon 适合于企业级别的微服务开发脚手架,功能齐全,开箱即用,部署快捷 目前项目处于开发阶段,部分功能已经可以使用,后续会逐步完成其他规划内容,并完善项目文档,如果你在使用过程中遇到任何问题,可以通过 QQ 群聊联系我,请戳这里 加入群聊。 ?? 项目介绍 Cloud Dra

chenxiaolong 17 Dec 19, 2022
A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway, resillience4j, Kafka, Redis and MySQL.

High-availability-shopping-system A high availability shopping(ecommerce) system using SpringBoot, Spring Cloud, Eureka Server, Spring Cloud Gateway,

LeiH 1 Oct 26, 2022
The all-in-one cosmetics solution created by HibiscusMC Staff, for HibiscusMC.

HMCCosmetics Table of Contents Description Installation Download Description HMCCosmetics is a free, open source cosmetics plugin which allows you to

HibiscusMC 44 Dec 12, 2022
Alibaba Cloud Dedicated KMS Transfer SDK for Java can help Java developers to migrate from the KMS keys to the Dedicated KMS keys.

Alibaba Cloud Dedicated KMS Transfer SDK for Java Alibaba Cloud Dedicated KMS Transfer SDK for Java can help Java developers to migrate from the KMS k

Alibaba Cloud 3 May 12, 2022
The Distributed Application Runtime (Dapr) provides APIs that simplify microservice connectivity

Quarkus - Dapr Introduction What is Quarkus? Traditional Java stacks were engineered for monolithic applications with long startup times and large mem

Quarkiverse Hub 18 Jan 5, 2023
The Google code scanner API provides a complete solution for scanning codes without requiring your app to request camera permission.

Android Google Code Scanner The Google code scanner API provides a complete solution for scanning codes without requiring your app to request camera p

Prabhakar Thota 7 Nov 23, 2022
Tuya 37 Dec 26, 2022
Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project.

MagOKO Stack Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project. License Copyright 2021-present

DeepInThink Community 10 Jun 1, 2021
Find solutions for the Cognizant Early Engagement Program [ Continuous Skill Development ].

Cognizant-Early-Engagement Early Engagement is a learning portal offered by Cognizant, where you can learn basic concepts of Java, Sql, Web Develepome

Saravana Kumar 176 Jan 3, 2023
🔥 强大的动态线程池,并附带监控报警功能(没有依赖中间件),完全遵循阿里巴巴编码规范。Powerful dynamic thread pool, does not rely on any middleware, with monitoring and alarm function.

?? 动态线程池(DTP)系统,包含 Server 端及 SpringBoot Client 端需引入的 Starter. 这个项目做什么? 动态线程池(Dynamic-ThreadPool),下面简称 DTP 系统 美团线程池文章 介绍中,因为业务对线程池参数没有合理配置,触发过几起生产事故,进而

longtai 3.4k Dec 30, 2022
PolarDB-X is a cloud native distributed SQL Database designed for high concurrency, massive storage, complex querying scenarios.

中文文档 What is PolarDB-X ? PolarDB-X is a cloud native distributed SQL Database designed for high concurrency, massive storage and complex querying scen

null 1.2k Dec 31, 2022
一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖大部分应用场景。

springcloud-learning 简介 一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。22篇文章,篇篇精华,32个Demo,涵盖

macro 5.6k Dec 30, 2022
Android application made during an introduction class to mobile application development.

Reflex Revolution Android application made during an introduction class to mobile application development. Contributors Hailey Savoie Carter Moore Fre

Frederic Verret 3 Aug 27, 2022