SlideShare a Scribd company logo
Dubbo and Weidian's Practice on Microservice
Architecture
Who's Weidian
The stages of Weidian
Challenges & Solutions
About the future
CONTENTS
Speaker:Xin Wang
Who's Weidian ?
Scale
70 million
Security
600 million /
day
Cost
Tens of
millions / year
Efficienc
y
600+
• 5.6 million attacks /
days;
• CC、SQLInjection、
XSS、CSRF ...
• 600 million + daily
visit of crawlers...
• 70 million stores, 1 billion
goods; 9P data
• Payment, search,
recommendation, risk
control, IM, transaction,
open platform,
advertising, supply chain...
• In IDC,
2016/2017, our
total
expenditure is
tens of millions
of RMB.
• 600+ RD work together
• 60 times a day on the
line, 400+ release
(including test / Pre
deployment
environment)
Weidian is a app of China to help sellers open their shop on mobile phones. Anyone can
open their own shop through mobile phone numbers.
Dubbo and Weidian's Practice on Microservice
Architecture
Who's Weidian
The stages of Weidian
Challenges & Solutions
About the future
CONTENTS
Speaker:Xin Wang
Monolithic application stage
Shop league
App server Shop payment
Promotion
SELL Search Recommend DB
DB
WEB OPEN-API
Some related apps
DB
API API API
DB
DB
l PHP
l Nginx
l Mysql
l Redis
Technology stack
l Testing is difficult: requires all
functional regression
l Scalability: weak
l Edge BUG, such as dead loop, OOM,
and so on, drag down the entire site.
Technology stack
Multi module stage
shop
item
refundorder
promotion
trade
l PHP
l Nginx
l Mysql
l Redis
Problems encountered
l Code splitting, independent deployment, process isolation,
technology stack has not changed much.
l Problems:
• It is difficult to upgrade,because need to push the
whole site
• The pressure of the database connection pool is great
Technology stack
Servitization stage
l Service group appears, order center:
item center, trading center, etc.
l Technology stack:
• Dubbo
• VTrace
• Vdds
l Technology stack:
• Problem tracking is difficult
• Configuration is troublesome, ops
have heavy work
• Difficulty in testing: interference with
each other
Creat
order
Trade
Item center
item
SKU stock
Order
Order
query
Report
Task
Promotion
management
promotion
refund
complain
refund
Dubbo and Weidian's Practice on Microservice
Architecture
Who's Weidian
The stages of Weidian
Challenges & Solutions
About the future
CONTENTS
Speaker:Xin Wang
Servitization-Module split
Complex business relations
How to split the module?
• Consider the business first VS
Consider the data table first?
• Should the number of lines of code
be used as the basis for
subcontracting?
• How to balance the pursuit of design,
engineering, and operation?
Servitization-Module split
u Microservice:
• System consisting of distributed services
• Organize organizations by business rather
than technology
• Automated operation and maintenance
• Rapid evolution of service iteration
u DDD Domain-driven Design
• Solve core issues in the domain by building domain models
• Implementation of code driven by domain models
• Technical architecture design or data storage, etc. are on the
periphery of the domain model
• DDD vs SSI(spring+hibernate): congestion model / blood loss
model
Split principle:
• DDD Business-driven
• Balance of design,
engineering, operations,
etc.
• Progressive evolution
Servitization-Automated deployment
Services, the configuration workload is getting bigger, how to ensure
that no mistakes are made?
How to ensure that the test system is independent according to
business needs?
How to implement the CI/CD pipeline system?
How do you fully squeeze the usage of the infrastructure
(CPU/memory/disk/network)?
Ops and
deployment
problem
Servitization-Automated deployment
l OS version
•Centos7.2
l Virtualization
• KVM
• Docker
l Network mode
• Bridge
ü Pipework
ü Libvirt
• Configuring unique IP, and
interworking all over the network
infrastructure
Virtualization Manage
OPS
cpu/memory/disk/network
Servitization-Call link tracking
l Dapper: rpc tracks the basis of the paper
l Rpc framework generation, no business intrusion
l Trace Id: initial call to generate uuid string
l Each rpc call generates a span while recording the parent span
l Full support for other middleware:tomcat/dubbo/vdianMQ/vdds/redisClient
Consol
e
API
ES
Hbase/MR
Kafka/flink
qua
ke
http proxy …..
kdserv
er
Buy/car/
……
Dist
ribu
tion
…..
shop
Weidia
n 2.0
Buyer
Sea
rch
…..
VDDS
vdian
MQ
redis
htt
p
…..
Servitization-Application service monitoring, alarm
Calculation rule
configuration file
Kakfa
stream
Time window
Summary
filter Persistence
Storm calculation engine
Regular update
Alarm rule
configuration
file
Timing script
calculation to
determine whether
the alarm condition is
met
HBAS
E
write
SMS
alarm
Alarm center
1-
Read
alarm
config
2-
Read
ing
data
3-
output
l Application service monitoring,
alarm
• Vmonitor agent collects rpc trace
logs
• Alarm rule configuration (traffic
exception/service exception
super threshold...)
l Solved problems:
• Abnormal traffic warning
• Error warning
Servitization-Application fuse, limit flow
Request processing
thread pool
(Dubbo,Tomcat)
Business
logic
Service
governance
filter
Dubbo Consumer Filter Chain
…
Core: Hystrix
Service governance client
Service governance
platform
Request processing
thread pool
(Dubbo,Tomcat)
Service
governance
filter
…
Business
logic
Dubbo Provider Filter Chain
Fuse,downgrade,isolate
Limit flow
l Solved problems:
• Edge service dragged core service at
high traffic
• Limit when large flow
Servitization-Business challenge: double alive
l Requirement: Computer room
migration(Double alive in the same city)
l Strategy:
• New and old machine room share a Dubbo root root
node
• The service of the new computer room is registered
under the same service directory. In the URL, the
belongTo attribute needs to be added.
• If all the local services are down, the router will be
routed to the remote execution.
l Changes:
• The Dubbo router policy needs to be re
implementeddubbo
• The timeout retry strategy needs to be
reimplemented
ThankstoDubbo's
supportforthebusiness
Summary: using Dubbo to do service management,
we should make efforts in all around Dubbo
Servitization-Summary
Dubbo and Weidian's Practice on Microservice
Architecture
Who's Weidian
The stages of Weidian
Challenges & Solutions
About the future
CONTENTS
Speaker:Xin Wang
About the future-Giving back to the community
DUBBO
How to replace the dubbo
version of the private
maintenance with the latest
dubbo version?
• Serialization compatibility (in the rolling upgrade,
the business is guaranteed to be ordered)
• After graduating from the apache community, the
package will be changed from com.alibaba.dubbo to
org.apache.dubbo and will provide an extension.
Private dubbo version,
how to integrate with the
official version of dubbo?
• Please submit your private extension to
the dubbo communitydubbo
• Dubbo official will make the best
practices in the following areas:
rpc tracking, current-limiting fuse,
multi-language support, etc.
About the future-Multi-language support
l Method:
Use a effective language to develop a agent, other than
JAVA language can interact through the agent process
and registry. (Service mesh sidecar mode)
Benefit :
No need to implement a dubbo client in every language
(in multi-language communication, thrift, gRPC and other
serialization frameworks based on tcp protocol will
perform better than http1+json) serialization
Problem:
A node has been added: when the agent process is
abnormal or hangs, the business process of the agent
service has to remove the traffic.
Service Mesh’s
Control Plane
Service A
Business
Logic
SideCar
Agent
Service B
Business
Logic
SideCar
Agent
Registry
About the future- Silver Bullet or not,When dubbo
meet Service mesh
1. For the use of technology, it depends on the stage of business development. 2. For
the new technology ecology: Please use some of his ideas, such as sidecar, such as
this multi-language client practice Service Mesh’s
Control Plane
Service A
Business
Logic
SideCar
Circuit
Breaker
Service
Discovery
Flow
Control
Networking
Stack
Service B
Business
Logic
SideCar
Circuit
Breaker
Service
Discovery
Flow
Control
Networking
Stack
View:
About the future- Dubbo+Reactive programming
Principle of Finagle:
1, Service as a function;
2, function is in line with the functional
programming paradigm: transparent
reference, no side effects, can be combined,
can be transformed, etc.;
3, the return value of the function is unified
Fututre [Xxx] / Try [Xxx] / Option [Xxx]. Try
and so is a Monad Tip: Refer to the basic
concept of Monad in functional
programming;
4. Based on the above three points, the
whole system can be constructed like
building blocks;
Reactive programming:
Microservices need to consider their
responsiveness, ie
1. Resilience (in response to failure);
2, scalability (response under different load
conditions)
3, message-driven (loosely coupled, through
asynchronous message isolation) and
responsive programming requirements:
message-driven, designed for failure,
asynchronous. Therefore, responsive
programming is required;
Contact us
About author:
• Github: https://github.com/lovepoem
• twitter: wangxinvictor
Community:
• dubbo.apache.org
• dubbo.io
Repos:
• github.com/apache/incubator-dubbo
• github.com/dubbo
Email list
• dev@dubbo.apache.org

More Related Content

Similar to Dubbo and Weidian's practice on micro-service architecture

Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
Rick Hightower
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the Cloud
Ben Saunders
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision Science Community
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
Rick Hightower
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
Richard Banks
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
Jim (张建军) Zhang
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
NGINX, Inc.
 
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS SummitDiscover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Amazon Web Services
 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVA
confluent
 
Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013
Min Fang
 
Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference
Arnaud Bouchez
 
Compuware ASEAN APM User Conference 2013 - Understanding User Performance of SAP
Compuware ASEAN APM User Conference 2013 - Understanding User Performance of SAPCompuware ASEAN APM User Conference 2013 - Understanding User Performance of SAP
Compuware ASEAN APM User Conference 2013 - Understanding User Performance of SAPCompuware ASEAN
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
PINGXIONG3
 
The Yin and Yang of Software
The Yin and Yang of SoftwareThe Yin and Yang of Software
The Yin and Yang of Softwareelliando dias
 
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
Daniel Bryant
 
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Continuent
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
Katherine Golovinova
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar
 
Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016
Peter Lawrey
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
cornelia davis
 

Similar to Dubbo and Weidian's practice on micro-service architecture (20)

Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)Service Mesh CTO Forum (Draft 3)
Service Mesh CTO Forum (Draft 3)
 
Contino Webinar - Migrating your Trading Workloads to the Cloud
Contino Webinar -  Migrating your Trading Workloads to the CloudContino Webinar -  Migrating your Trading Workloads to the Cloud
Contino Webinar - Migrating your Trading Workloads to the Cloud
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS SummitDiscover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
Discover MongoDB Atlas and MongoDB Stitch - DEM02-S - Mexico City AWS Summit
 
Confluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVAConfluent Partner Tech Talk with SVA
Confluent Partner Tech Talk with SVA
 
Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013
 
Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference Ekon20 mORMot SOA Delphi Conference
Ekon20 mORMot SOA Delphi Conference
 
Compuware ASEAN APM User Conference 2013 - Understanding User Performance of SAP
Compuware ASEAN APM User Conference 2013 - Understanding User Performance of SAPCompuware ASEAN APM User Conference 2013 - Understanding User Performance of SAP
Compuware ASEAN APM User Conference 2013 - Understanding User Performance of SAP
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
The Yin and Yang of Software
The Yin and Yang of SoftwareThe Yin and Yang of Software
The Yin and Yang of Software
 
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
JAX London 2019 "Cloud Native Communication: Using an API Gateway and Service...
 
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
Marketing Automation at Scale: How Marketo Solved Key Data Management Challen...
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016Microservices for performance - GOTO Chicago 2016
Microservices for performance - GOTO Chicago 2016
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 

Recently uploaded

H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
SupreethSP4
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
gerogepatton
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 

Recently uploaded (20)

H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Runway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptxRunway Orientation Based on the Wind Rose Diagram.pptx
Runway Orientation Based on the Wind Rose Diagram.pptx
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang,  ICLR 2024, MLILAB, KAIST AI.pdfJ.Yang,  ICLR 2024, MLILAB, KAIST AI.pdf
J.Yang, ICLR 2024, MLILAB, KAIST AI.pdf
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 

Dubbo and Weidian's practice on micro-service architecture

  • 1. Dubbo and Weidian's Practice on Microservice Architecture Who's Weidian The stages of Weidian Challenges & Solutions About the future CONTENTS Speaker:Xin Wang
  • 2. Who's Weidian ? Scale 70 million Security 600 million / day Cost Tens of millions / year Efficienc y 600+ • 5.6 million attacks / days; • CC、SQLInjection、 XSS、CSRF ... • 600 million + daily visit of crawlers... • 70 million stores, 1 billion goods; 9P data • Payment, search, recommendation, risk control, IM, transaction, open platform, advertising, supply chain... • In IDC, 2016/2017, our total expenditure is tens of millions of RMB. • 600+ RD work together • 60 times a day on the line, 400+ release (including test / Pre deployment environment) Weidian is a app of China to help sellers open their shop on mobile phones. Anyone can open their own shop through mobile phone numbers.
  • 3. Dubbo and Weidian's Practice on Microservice Architecture Who's Weidian The stages of Weidian Challenges & Solutions About the future CONTENTS Speaker:Xin Wang
  • 4. Monolithic application stage Shop league App server Shop payment Promotion SELL Search Recommend DB DB WEB OPEN-API Some related apps DB API API API DB DB l PHP l Nginx l Mysql l Redis Technology stack l Testing is difficult: requires all functional regression l Scalability: weak l Edge BUG, such as dead loop, OOM, and so on, drag down the entire site. Technology stack
  • 5. Multi module stage shop item refundorder promotion trade l PHP l Nginx l Mysql l Redis Problems encountered l Code splitting, independent deployment, process isolation, technology stack has not changed much. l Problems: • It is difficult to upgrade,because need to push the whole site • The pressure of the database connection pool is great Technology stack
  • 6. Servitization stage l Service group appears, order center: item center, trading center, etc. l Technology stack: • Dubbo • VTrace • Vdds l Technology stack: • Problem tracking is difficult • Configuration is troublesome, ops have heavy work • Difficulty in testing: interference with each other Creat order Trade Item center item SKU stock Order Order query Report Task Promotion management promotion refund complain refund
  • 7. Dubbo and Weidian's Practice on Microservice Architecture Who's Weidian The stages of Weidian Challenges & Solutions About the future CONTENTS Speaker:Xin Wang
  • 8. Servitization-Module split Complex business relations How to split the module? • Consider the business first VS Consider the data table first? • Should the number of lines of code be used as the basis for subcontracting? • How to balance the pursuit of design, engineering, and operation?
  • 9. Servitization-Module split u Microservice: • System consisting of distributed services • Organize organizations by business rather than technology • Automated operation and maintenance • Rapid evolution of service iteration u DDD Domain-driven Design • Solve core issues in the domain by building domain models • Implementation of code driven by domain models • Technical architecture design or data storage, etc. are on the periphery of the domain model • DDD vs SSI(spring+hibernate): congestion model / blood loss model Split principle: • DDD Business-driven • Balance of design, engineering, operations, etc. • Progressive evolution
  • 10. Servitization-Automated deployment Services, the configuration workload is getting bigger, how to ensure that no mistakes are made? How to ensure that the test system is independent according to business needs? How to implement the CI/CD pipeline system? How do you fully squeeze the usage of the infrastructure (CPU/memory/disk/network)? Ops and deployment problem
  • 11. Servitization-Automated deployment l OS version •Centos7.2 l Virtualization • KVM • Docker l Network mode • Bridge ü Pipework ü Libvirt • Configuring unique IP, and interworking all over the network infrastructure Virtualization Manage OPS cpu/memory/disk/network
  • 12. Servitization-Call link tracking l Dapper: rpc tracks the basis of the paper l Rpc framework generation, no business intrusion l Trace Id: initial call to generate uuid string l Each rpc call generates a span while recording the parent span l Full support for other middleware:tomcat/dubbo/vdianMQ/vdds/redisClient Consol e API ES Hbase/MR Kafka/flink qua ke http proxy ….. kdserv er Buy/car/ …… Dist ribu tion ….. shop Weidia n 2.0 Buyer Sea rch ….. VDDS vdian MQ redis htt p …..
  • 13. Servitization-Application service monitoring, alarm Calculation rule configuration file Kakfa stream Time window Summary filter Persistence Storm calculation engine Regular update Alarm rule configuration file Timing script calculation to determine whether the alarm condition is met HBAS E write SMS alarm Alarm center 1- Read alarm config 2- Read ing data 3- output l Application service monitoring, alarm • Vmonitor agent collects rpc trace logs • Alarm rule configuration (traffic exception/service exception super threshold...) l Solved problems: • Abnormal traffic warning • Error warning
  • 14. Servitization-Application fuse, limit flow Request processing thread pool (Dubbo,Tomcat) Business logic Service governance filter Dubbo Consumer Filter Chain … Core: Hystrix Service governance client Service governance platform Request processing thread pool (Dubbo,Tomcat) Service governance filter … Business logic Dubbo Provider Filter Chain Fuse,downgrade,isolate Limit flow l Solved problems: • Edge service dragged core service at high traffic • Limit when large flow
  • 15. Servitization-Business challenge: double alive l Requirement: Computer room migration(Double alive in the same city) l Strategy: • New and old machine room share a Dubbo root root node • The service of the new computer room is registered under the same service directory. In the URL, the belongTo attribute needs to be added. • If all the local services are down, the router will be routed to the remote execution. l Changes: • The Dubbo router policy needs to be re implementeddubbo • The timeout retry strategy needs to be reimplemented
  • 16. ThankstoDubbo's supportforthebusiness Summary: using Dubbo to do service management, we should make efforts in all around Dubbo Servitization-Summary
  • 17. Dubbo and Weidian's Practice on Microservice Architecture Who's Weidian The stages of Weidian Challenges & Solutions About the future CONTENTS Speaker:Xin Wang
  • 18. About the future-Giving back to the community DUBBO How to replace the dubbo version of the private maintenance with the latest dubbo version? • Serialization compatibility (in the rolling upgrade, the business is guaranteed to be ordered) • After graduating from the apache community, the package will be changed from com.alibaba.dubbo to org.apache.dubbo and will provide an extension. Private dubbo version, how to integrate with the official version of dubbo? • Please submit your private extension to the dubbo communitydubbo • Dubbo official will make the best practices in the following areas: rpc tracking, current-limiting fuse, multi-language support, etc.
  • 19. About the future-Multi-language support l Method: Use a effective language to develop a agent, other than JAVA language can interact through the agent process and registry. (Service mesh sidecar mode) Benefit : No need to implement a dubbo client in every language (in multi-language communication, thrift, gRPC and other serialization frameworks based on tcp protocol will perform better than http1+json) serialization Problem: A node has been added: when the agent process is abnormal or hangs, the business process of the agent service has to remove the traffic. Service Mesh’s Control Plane Service A Business Logic SideCar Agent Service B Business Logic SideCar Agent Registry
  • 20. About the future- Silver Bullet or not,When dubbo meet Service mesh 1. For the use of technology, it depends on the stage of business development. 2. For the new technology ecology: Please use some of his ideas, such as sidecar, such as this multi-language client practice Service Mesh’s Control Plane Service A Business Logic SideCar Circuit Breaker Service Discovery Flow Control Networking Stack Service B Business Logic SideCar Circuit Breaker Service Discovery Flow Control Networking Stack View:
  • 21. About the future- Dubbo+Reactive programming Principle of Finagle: 1, Service as a function; 2, function is in line with the functional programming paradigm: transparent reference, no side effects, can be combined, can be transformed, etc.; 3, the return value of the function is unified Fututre [Xxx] / Try [Xxx] / Option [Xxx]. Try and so is a Monad Tip: Refer to the basic concept of Monad in functional programming; 4. Based on the above three points, the whole system can be constructed like building blocks; Reactive programming: Microservices need to consider their responsiveness, ie 1. Resilience (in response to failure); 2, scalability (response under different load conditions) 3, message-driven (loosely coupled, through asynchronous message isolation) and responsive programming requirements: message-driven, designed for failure, asynchronous. Therefore, responsive programming is required;
  • 22. Contact us About author: • Github: https://github.com/lovepoem • twitter: wangxinvictor Community: • dubbo.apache.org • dubbo.io Repos: • github.com/apache/incubator-dubbo • github.com/dubbo Email list • dev@dubbo.apache.org