On the micro-service architecture and .Net Core

Micro Services (microservice) this concept appeared in 2012, in March 2014 Martin Fowler in his personal website ( https://martinfowler.com/articles/microservices.html ) is said of the:

The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data.

" Micro Services Architecture"term rise in the past few years, is a specific way software applications are designed to be deployed independently suite of services described. Although there is no precise definition of this architectural style,but it has some common features, such as automated deployment capabilities around business, smart endpoints, "Go centralized" control of language and data, and so on.

Popular speaking, we can be considered: the development of the traditional system, our entire system is divided into the presentation layer, service layer, business logic, data access layer development, but in the end we bring together all of the code compilation release, so do also has its advantages, such as the development of simple, does not exist distributed management, but it also has disadvantages, such as: a small bug that could cause the collapse of the entire application, system coupled with high service code is not easy to maintain, develop inflexible , if new business needs can only add to the original code logic, so that the development team members demanding, high turnover if the team members, new members must be familiar with the team's development framework, it is difficult to adapt to this development model, also with the increase in business has a system function to increase the amount of data increases, it is unable to meet the business needs in high concurrency; if we use the micro-service architecture, it will be split into multiple business throughout our system, each a business make a service between a service using HTTP (the message queue may be used RoocketMQ, Kafaka) communication, and And each service may use different development languages, use different storage methods, according to the concurrent needs of different businesses, we can do alone cluster deployment of a service, and enhance the load capacity of the system, since each service is independent deployment , modify, and deploy each service without influence on other services, of course, also has some disadvantages micro-services, such as: repeated code, some underlying functionality to be used by a plurality of services, in order to avoid a "synchronous coupled into the system." sometimes you need to add some code to a different service, which will lead to duplication of code; distributed systems developers need to consider issues such as network latency, asynchronous mechanism, system fault tolerance, distributed transactions, and so on; another operation and maintenance expenses and costs will increase, micro-service architecture may need to run dozens of independent service, and may need to support multiple languages ​​and environments, requirements for operation and maintenance personnel is relatively high.

Summary : micro-services architecture has many attractive places, before the embrace micro services, we have to choose whether to adopt the framework for the actual situation of the actual situation and the project team.

 

.NET Core is suitable for windows, free, open source framework for computer software and hosted linux macos operating system, is the first official version developed by Microsoft, cross-platform (Windows, Mac OSX, Linux) framework for application development capabilities (Application Framework), the future will support FreeBSD and Alpine platform, Microsoft is at the beginning of development on open-source software platform.

Because .NET Core's goal is to develop a cross-platform .NET platform, .NET Core will include the .NET Framework class library, but the difference is that .NET Framework .NET Core using packetized (Packages) management, application program only needs to obtain the required components, packaged with the .NET Framework installed entirely different approach, and each bag also has a separate line version (version line), applications no longer a mandatory requirement to follow the mainline.

.NET Core advantages:

.NET Core 3.0 now supports the WPF and Windows Forms development, and also supports mixed-use development between the UWP, three WPF and Windows Forms, which provides flexibility for developers, Windows Forms can be introduced into the existing interface UWP and in WPF.

.NET Core is more suitable for cross platform development. .NET Core applications support Windows, Linux and Mac OS. Microsoft's popular Visual Studio Code Editor supports Windows, Linux and Mac OS. VS Code also supports IntelliSense and debugging, many third-party code editor (such as Sublime, Emacs and VI) are also developed using .Net Core.

.NET Core support micro-service architecture, which allows cross-platform services used in conjunction with .NET Core, including the use of .NET Framework, Java, Ruby or any other language development services.

.NET Core modular, lightweight and flexibility to deploy .NET Core application easier in the container. The container can be deployed on any platform, including cloud, Linux and Windows,. Net Core on Docker and Azure Kubernetes Service are running well.

Good compatibility between each version of .NET Core. You can run different versions of the application at the same time in the same computer above.

 

 

 

 

Guess you like

Origin www.cnblogs.com/minghon/p/11741519.html