アリクラウドtablestoreを実現するCRUDフレームワークspring-data-tablestore
3559 ワード
アリクラウドtablestore(旧OTS)はクラスHbaseの分散型Nosqlであり、高可用性の大量ストレージKVライブラリサービスを提供している.
利点は、メンテナンスを必要とせず、安定性が非常に良いことです.
相対的な劣勢は、性能の安定性を保証するためにHbaseの一部の機能を制限することである.
元アリクラウドクライアントの使用上とspringbootとspringdataのスタイルの差が大きいため、spring-data-commnsベースのコンポーネントを実現し、CURD操作を自動的に生成する解体即用をサポートすることを試みた.
ソース参照https://github.com/togetu/spring-data-tablestore
spring-data-tablestore
spring-data-xxx for aliyun(alibaba clound) tablestore(hbase like)
clone, and run
1. build a entity looks like this
2 create CRUD, the same as spring-data framework will do
3 login the alibaba clound page to create tablestore database and table. remember endpoint, key and secret.
4 little config work to connect to tablestore service
in application.yml(or properties,change the fomart)
5 enjoy it
利点は、メンテナンスを必要とせず、安定性が非常に良いことです.
相対的な劣勢は、性能の安定性を保証するためにHbaseの一部の機能を制限することである.
元アリクラウドクライアントの使用上とspringbootとspringdataのスタイルの差が大きいため、spring-data-commnsベースのコンポーネントを実現し、CURD操作を自動的に生成する解体即用をサポートすることを試みた.
ソース参照https://github.com/togetu/spring-data-tablestore
spring-data-tablestore
spring-data-xxx for aliyun(alibaba clound) tablestore(hbase like)
clone, and run
mvnw install
to local. import to your project
in.togetu
spring-data-tablestore
0.0.1-SNAPSHOT
1. build a entity looks like this
@TableStoreEntity(name = "comments")
public class CommentsEntity {
@Id
@PrimaryId(order = 1, name = "id", partition = true)
private String id;
@PrimaryId(order = 3, name = "user")
private String user;
private String content;
private Long votes;
private String status;
@PrimaryId(order = 2, name = "publishAt")
private Long publishAt;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Long getVotes() {
return votes;
}
public void setVotes(Long votes) {
this.votes = votes;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Long getPublishAt() {
return publishAt;
}
public void setPublishAt(Long publishAt) {
this.publishAt = publishAt;
}
@Override
public String toString() {
return "CommentsEntity{" +
"id='" + id + '\'' +
", user='" + user + '\'' +
", content='" + content + '\'' +
", votes=" + votes +
", status='" + status + '\'' +
", publishAt=" + publishAt +
'}';
}
}
2 create CRUD, the same as spring-data framework will do
public interface CommentsRepository extends PagingAndSortingRepository {
}
3 login the alibaba clound page to create tablestore database and table. remember endpoint, key and secret.
4 little config work to connect to tablestore service
@Configuration
@EnableTableStoreRepositories(basePackages = "com.package.to.your.repository")
public class ServiceConfig {
@Bean("tsConfig")
@ConfigurationProperties(prefix = "tablestore")
public AliyunProductConfig getTableStoreConfig() {
// manual fill the config if not use spring boot
return new AliyunProductConfig();
}
}
in application.yml(or properties,change the fomart)
tablestore:
product: tablestore
region: xxxx
endpoint: https://xxxxx.xxxx.ots.aliyuncs.com
accessKey: xxxxx
accessSecret: xxxxxx
instance:
name: nameofinstace
5 enjoy it