You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicecomb.apache.org by "Lei Zhang (Jira)" <ji...@apache.org> on 2022/05/05 12:29:00 UTC
[jira] [Resolved] (SCB-2425) Refactoring the Alpha module using Spring SPI
[ https://issues.apache.org/jira/browse/SCB-2425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lei Zhang resolved SCB-2425.
----------------------------
Fix Version/s: pack-0.7.0
Resolution: Fixed
> Refactoring the Alpha module using Spring SPI
> ---------------------------------------------
>
> Key: SCB-2425
> URL: https://issues.apache.org/jira/browse/SCB-2425
> Project: Apache ServiceComb
> Issue Type: Task
> Components: Saga
> Affects Versions: pack-0.7.0
> Reporter: Lei Zhang
> Assignee: Lei Zhang
> Priority: Major
> Fix For: pack-0.7.0
>
>
> The purpose of refactoring is to decouple distributed transaction implementation
> *Alpha Module*
> * Rename alpha-fsm to alpha-spec-saga-akka
> * Add alpha-spec-saga-db
> * Add alpha-spec-tcc-db
> * Keep Acceptance module artifactId and directory name the same, e.g. rename acceptance-pack-akka-spring to acceptance-pack-akka-spring-demo
> * Rename persistence-jpa to alpha/alpha-persistence-jpa
> *Alpha Using Spring SPI*
> * Load AlphaSpecXXXAutoConfiguration through spring.factories under each module
> * Configure the SPI module by parameters, likes alpha.spec.names=saga-db or alpha.spec.names=saga-akka
> *Alpha Configuration*
> {code:java}
> alpha:
> spec:
> names: saga-db
> saga:
> akka:
> channel:
> name: memory
> memory:
> max-length: -1
> kafka:
> topic: servicecomb-pack-actor-event
> bootstrap-servers: 127.0.0.1:9092
> consumer:
> group-id: servicecomb-pack
> auto.offset.reset: earliest
> producer:
> batch-size: 16384
> retries: 0
> buffer.memory: 33554432
> repository:
> name: elasticsearch
> elasticsearch:
> uris: http://localhost:9200
> batch-size: 100
> refresh-time: 5000
> db:
> datasource:
> username: sa
> password:
> url: jdbc:hsqldb:mem:saga
> initialization-mode: always
> cluster:
> enabled: true
> type: jdbc
> expire: 5000
> tcc:
> db:
> memory-mode: true
> datasource:
> username: sa
> password:
> url: jdbc:hsqldb:mem:saga
> initialization-mode: always
> {code}
>
> *Omega Modules*
> * Split OmegaSpringConfig into OmegaSagaSpringConfig and OmegaTccSpringConfig
> *Omega AutoConfiguration*
> * OmegaSagaSpringConfig using omega.spec.names=saga
> * OmegaTccSpringConfig using omega.spec.names=tcc
> * TransactionAspectConfig class of the omega-spring-tx module uses ConditionalOnExpression to initialize beans
> *Legacy Issue*
> * [Duplicate Code]Create class EclipseLinkJpaConfiguration in test case to avoid dependency on class EclipseLinkJpaConfiguration in alpha-persistence-jpa module
> * [Duplicate Code]Because of the metrics API, each Spec module contains same classes as follows
> {code:java}
> AlphaMetricsEndpointImpl.java
> MetricsService.java
> SagaAkkaAPIv1Controller.java, SagaAkkaAPIv1Impl.java
> SagaDbAPIv1Controller.java, SagaDbAPIv1Impl.java
> TccDbAPIv1Controller.java, TccDbAPIv1Impl.java
> {code}
> * saga-db saga-akka and tcc-db cannot be used together
> * Refactor Redis and Rabbit channel configuration in saga-akka module
>
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)