Technology sharing

[2-1: RPC design]

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Basics

1.1 Definition & Features

RPC processus remota vocatio, ratio remota vocatio, quae definit mores progressionis in una machina vocantem subroutine in alia machina.
Features:

  • Remota est exsecutio localis.
  • Cliens utendi modum postulat petitionem inchoat et minister exsequitur, parametris acceptis.
  • Substratum protegens multiplicitatem crucis-processus et cruces network vocat nobis permittit ut magis in negotiis logicae versaris.

1.2 Imprimis compages exsecutionis

  1. dubbo(apache alibaba java)
  2. motan (Weibo)
  3. tars (internum Tencent)
  4. grpc
  5. parsimonia
  6. vere nubes openfeign

1,3 Application missionibus

Potest adhiberi ad crucem-network communicationis

2. Key technica puncta RPC & vocatus ad RPC processus

2.1 processus RPC

processus

Insert imaginem descriptionis hic
Insert imaginem descriptionis hic

  1. Cliens interfacem vocat et ad procuratorem pergit, rogatu colligit et serializet, deinde protocollum encomit et mittit.
  2. Minister petitionem accipit, protocollum parsing et deserialization facit ut parametri petitionem consequantur.
  3. Minister exsecutionem interfaciei vocat secundum ambitum rogationis et responsionem convocat
  4. Eodem modo responsio redditur

Quomodo duo moduli retis connexa sunt?

Insert imaginem descriptionis hic

Adnotatione centrum locus est ubi notitia reponitur, et optimum est ad functiones vigilantias providere.Adnotatione centrum est separatum a rpc compage
Communes adnotationes: zookeeper, nacos, etc

Alia lineamenta

Insert imaginem descriptionis hic

  • Route filters available providers
  • Librans onus: elige quod provisor ut ex provisoribus praesto
  • Fuse limitandi: fluxus imperium
  • network processus
  • Protocol processus

RPC commoda

  1. Facilius ut applicationes distributas, officia decouples aedifices, et facilius crescas
  2. RPC plerumque utitur nexibus longis, qui eliminat necessitatem constituendi nexum pro omni communicatione et retis supra caput reducens.
  3. RPC centrum adnotatione requirit qui dynamice sentire potest et mutationes muneris visualisare.
  4. Dives background administratio functionum, una administratio instrumenti muneris, nulla perceptio RECENS, operationis unitae
  5. Protocollum turpis, efficacia altior, alta secretio et securitas
  6. Munera habet ut libramen oneris, ruptor ambitus et vena limitandi.

2.2 Serialization technology

  • Aliqua serialization compage: core idea est designa serialization protocolScribere genus obiectum, attributum genus et attributum valorem in binario byte flumine in certa forma ad perficiendam serializationac deinde objectum genus, genus attributum, et secundum certam formam singulatim aestimant, ac novum objectum recreant per hanc informationem ad deserialem complendam.

Serialization modus

  • JDK patria serialization
  • Levis textus data commutatio forma-json/XML
    • Habet bene readability et opportunum ad legendi et debugging. Fasciculus byte post serializationem cum multi-lingua auxilio relative magna et relative inutilis est. praesertim pro anteriori fine et tertia partibus APis praebent.
  • HessianTypus dynamicus est, binarius et compages crucis sustinet Xu Lihua
    • Effectus Hessica multo efficacior est quam JDK et JSON serialization. Et numerus bytes generatus minor est.Ipsum bonum convenientiae et stabilitatisIdeo Hessian aptius est ut protocollum serialization ad communicationem longinquam in RPC compage.
  • protobuf *
    • Apertus fons seriei bibliothecae a Google immissae leve est, efficiens forma data cum multi-lingua repositionis formata.
    • Celeritas celeriter, ratio compressionis altae, magnitudo parva. Volumen post serializationem multo minor est quam JSON et Hessian. Forma cursus coloris disci bonum expansionem, upgrade et compatibilitatem habet et retro compatibile esse potest.

Quomodo PRC eliget compagem serializationem?

  • Electio factors
    • Securitas: Prima consideratio est quod si vulnerabilitates securitatis in serializatione insunt, tunc officia online verisimile invadantur (JDK native serialization has vulnerabilities
    • Compatibilitas: Estne compatibilitas protocolli serializationis valde bonae post upgrade versionis, an sit crucis suggestum, crucis-lingua etc.
    • Versatilitas: Videre potes et deserializare cuiuslibet generis.
    • Euismod et efficientiam: Processus serialization et deserialization necessarius processus est pro RPC vocat. Effectus et efficientia tenentur directe ad altiorem observantiam et efficientiam compagis RPC pertinentes.
    • Spatium capitis: magnitudo notitiarum binariorum post serializationem. Minor magnitudine notitiarum serialized byte, minor moles notitiarum in retiaculis transmissa, et celerius notitia transmittitur responsio tempus

considerations

  1. Obiecta vitanda, quae nimis implicata sunt ad construendum, multa attributa habent, et plures gradus nidificandi habent
  2. Fuge objecta nimis ampla: magnae chordae, valde magnae vestit, etc.
  3. Genera transeundi ut parametri vitant, quae compage serialization non praebentur
  4. Preoccupo obiecti relationes non habens complexionem hereditatis

2.3 Application accumsan communicationis protocol-http

2.3.1 Basic notiones

Most RPCs explicant http a se et etiam http1.1 . support

Insert imaginem descriptionis hic

Quid est IO?

IO processus notitiarum scribendi inter computatorium internum et cogitationes externas est.
Postquam advenit notitia retis, primum in area nuclei cache systematis operantis conditur et observat applicationis ad colligendum.

ore Urguet

Cum modus in ore felis utens, cum eventus legere in descriptor monitored Socket occurrit, server tantum excitare ab epoll_exspectare semel poterit semel.

horizontalem felis

Cum modus felis horizontalis utens, cum eventus lectibilis in Socket monitored occurrit, server continue evigilans ab epoll_wait donec nucleus quiddam notitiae per munus legere legeretur legere. .

Event IO eiectus

Incepta lectionis postulatio, eventum rei notificationem paratam lecturum exspecta antequam notitia legendi.

Asynchronous IO

Post petitionem legere incepta, exspecta ratio operativa ad certiorem te peracta lectione, et totum munus trade ad systema operandi ad exsequendum.

2.3.2 Quae sunt IO exemplaria operativae?

Synchroni interclusio IO *
Synchroni non-obturans IO
IO multiplexing
Signum repulsi IO
Asynchronous IO
Insert imaginem descriptionis hic

Synchroni interclusio IO *

Primus gradus lectionis obsidetur, id est, quod nos saepe appellamus, IO obturando.

listenfd = socket();   // 打开一个网络通信套接字
bind(listenfd);        // 绑定
listen(listenfd);      // 监听
while(1) {
   
  connfd = accept(listenfd);  // 阻塞 等待建立连接
  int n = read(connfd, buf);  // 阻塞 读数据
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7