SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
2© 2015 Pivotal Software, Inc. All rights reserved. 2
Apache Geode 와
Spring
이창재 (jaylee@pivotal.io)| Pivotal | Advanced Platform Architects
April, 2016
3© 2015 Pivotal Software, Inc. All rights reserved.
Agenda
Ÿ Apache Geode 소개
Ÿ Spring Data Gemfire
Ÿ Spring Session
Ÿ Demo
4© 2015 Pivotal Software, Inc. All rights reserved.
5© 2015 Pivotal Software, Inc. All rights reserved.
6© 2015 Pivotal Software, Inc. All rights reserved.
Apache Geode 는?
open source distributed, in-
memory database for scale-out
applications
7© 2015 Pivotal Software, Inc. All rights reserved.
Geode 는?
Ÿ 온라인으로 수평 확장이 가능한 고가용성 및 Low latency in-
memory Data Grid
Ÿ Key/Value (Map) Store (+ ααααααααα)
Ÿ Open Source
– 2015년 4월 Pivotal Gemfire 를 Apache 재단에 기증
– Project Geode
– 2016년 4월 현재 1.0.0-M2
8© 2015 Pivotal Software, Inc. All rights reserved.
Geode - In Memory
Ÿ Data 를 메모리에 분산해서 저장
– JVM Heap
– Off Heap 사용 가능(defragmentation)
Ÿ Disk 에도 저장 가능
– Persistent
Ÿ Eviction 과 Expiration 지원
– Least Recently Used 기반 Eviction
– Time To Live 기반 Expiration
9© 2015 Pivotal Software, Inc. All rights reserved.
Geode In-Memory 데이타 분산
VM 1
VM 2 VM 3
10© 2015 Pivotal Software, Inc. All rights reserved.
Server 3Server 2
Bucket 3
*primary*
Bucket 1
secondary
Bucket 3
secondary
Bucket 2
*primary*
Server 1
Bucket 2
secondary
Bucket 1
*primary*
Geode In-Memory 데이타 분산 (Redundant = 1)
11© 2015 Pivotal Software, Inc. All rights reserved.
Server 3Server 2
Bucket 3
*primary*
Bucket 1
secondary
Bucket 3
secondary
Bucket 2
*primary*
Server 1
Bucket 2
secondary
Bucket 1
*primary*
Geode In-Memory 데이타 분산 (Redundant = 1)
Server 가 죽으면?
12© 2015 Pivotal Software, Inc. All rights reserved.
Server 1 Server 3Server 2
Bucket 2
secondary
Bucket 1
*primary*
Bucket 3
*primary*
Bucket 1
*primary*
Bucket 3
secondary
Bucket 2
*primary*
Bucket 2
secondary
Primary
Failover
Restore
Redundancy
Bucket 1
secondary
Geode In-Memory 데이타 분산 (Redundant = 1)
13© 2015 Pivotal Software, Inc. All rights reserved.
Geode – PARTITION REGION
Ÿ REGION
– Database 의 Table
– 메모리에 분산되서 저장되는 java.util.Map
Ÿ REDUNDANT 를 가지는 것과 안가지는 것(PARTITION,
PARTITION_REDUNDANT)
– REDUNDANT 즉 Backup 의 갯수는 지정 가능 – 0~3개
Ÿ Consistent Hashing
– 기본 113 개의 Bucket
Ÿ Map API 뿐만 아니라 SQL Query 도 지원
14© 2015 Pivotal Software, Inc. All rights reserved.
Geode – Key/Value (Map) Store (+ ααααααααα)
Ÿ In Memory Data Grid
Ÿ Data Colocation
– Master / Detail 형태의 data graph
Ÿ Data Serialization (PDX)
Ÿ FuctionService
Ÿ JTA 호환 Transaction
출처 : http://s.hswstatic.com/gif/grid-computing-1.gif
15© 2015 Pivotal Software, Inc. All rights reserved.
Geode – Key/Value (Map) Store (+ ααααααααα)
16© 2015 Pivotal Software, Inc. All rights reserved.
Geode – Key/Value (Map) Store (+ ααααααααα)
17© 2015 Pivotal Software, Inc. All rights reserved.
Gemfire vs Geode
Ÿ Open Source
Ÿ 상용 Support
Ÿ 기능상의 차이
– WAN 상의 클러스터 복제 (M2 에 이미 포함)
– Continuous Query (M2 에 이미 포함)
– C++, C# 지원
18© 2015 Pivotal Software, Inc. All rights reserved.
Demo Repo
https://github.com/eggboy/springcamp2016geode
https://github.com/eggboy/gemfiredemo
19© 2015 Pivotal Software, Inc. All rights reserved.
Spring Data Gemfire
20© 2015 Pivotal Software, Inc. All rights reserved.
Spring Data GemFire (SDG)
Spring Data 의 강력하고 단순한 프로그래밍 모델을 이용하여 Apache
Geode 이용가능.
Spring Ecosystem Integration…
– Spring Cache Abstraction / Transaction Management
– Spring Data Commons + REST
– Spring Integration (Inbound/Outbound Channel Adapters)
– Spring Data Flow (Input Source and Sinks)
21© 2015 Pivotal Software, Inc. All rights reserved.
Apache Geode combined with Spring Data GemFire
can be used as JSR-107 (JCache) caching provider
+ +
22© 2015 Pivotal Software, Inc. All rights reserved.
GRAILS
Full-stack, Web
Data Flow
Stream, Taps, Jobs
BOOT
Bootable, Minimal, Ops-Ready
Big,
Fast,
Flexible
Data Web,
Integration,
Batch
WEB
Controllers, REST,
WebSocket
INTEGRATION
Channels, Adapters,
Filters, Transformers
BATCH
Jobs, Steps,
Readers, Writers
BIG DATA
Ingestion, Export,
Orchestration, Hadoop
DATA
NON-RELATIONALRELATIONAL
CORE
GROOVYFRAMEWORK SECURITY REACTOR
23© 2015 Pivotal Software, Inc. All rights reserved.
Server 설정
Spring XML 기반 설정
24© 2015 Pivotal Software, Inc. All rights reserved.
Client 설정
Spring XML 기반 설정
25© 2015 Pivotal Software, Inc. All rights reserved.
with Spring
Geode 서버 시작
@SpringBootApplication
@ImportResource("/spring-data-gemfire-cache.xml")
@EnableGemfireRepositories
@EnableTransactionManagement
public class SampleDataGemFireApplication {
public static void main(String[] args) {
SpringApplication.run(SampleDataGemFireApplication.class, args);
}
}
혹은…
gfsh>start server –name=Example … --spring-xml-location=“spring-data-gemfire-cache.xml”
26© 2015 Pivotal Software, Inc. All rights reserved.
GemfireRepository
Repository 를 이용한 data 접근
public interface CustomerRepository extends GemfireRepository<Customer, Long> {
}
// Spring context.xml
<gfe-data:repositories base-package="io.pivotal.springcamp.geode.repository" />
27© 2015 Pivotal Software, Inc. All rights reserved.
GemfireTemplate
GemfireTemplate 을 이용한 data 접근
Ÿ 가장 단순한 data 접근 방법
Ÿ Gemfire/Geode API 변경으로 부터 자유로움
Ÿ Exception 이 Spring DAO Exception 으로 변경
Ÿ Transaction
<bean id="customerTemplate" class="org.springframework.data.gemfire.GemfireTemplate"
p:region-ref="Customer" />
28© 2015 Pivotal Software, Inc. All rights reserved.
Implementation
Annotation-based Function Implementation/Execution
package org.example.app.functions;
import …
@Component
public class ExampleFunctions {
@GemfireFunction
public Customer update(…) {
…
}
…
}
Example…
(Optional)…
<bean class=“org.example….ExampleFunctions”/>
29© 2015 Pivotal Software, Inc. All rights reserved.
Execution
Annotation-based Function Implementation/Execution
package org.example.app.function.executions;
import …
@OnRegion(“Example”)
public interface ExampleFunctionExecution {
Customer update(…);
}
And…
<gfe:annotation-driven/>
<gfe-data:function-executions base-package="org.example.app.function.executions">
30© 2015 Pivotal Software, Inc. All rights reserved.
JSR-107 (JCache), Spring Cache Abstraction
Geode Caching Provider
Ÿ With @Cacheable
Ÿ And @CachePut, @CacheEvict(allEntries=[true|false]),
@CacheConfig
– http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#cache-jsr-107
Ÿ Or with JSR-107 using…
– @CacheResult, @CachePut, @CacheRemove, @CacheRemoveAll,
@CacheDefaults
31© 2015 Pivotal Software, Inc. All rights reserved.
Spring Session 과 Geode
32© 2015 Pivotal Software, Inc. All rights reserved. 32
12factor App Manifesto - VI. Processes
Twelve-factor processes are stateless and share-nothing.
Some web systems rely on “sticky sessions” – that is, caching user
session data in memory of the app’s process and expectingfuture
requests from the same visitor to be routed to the same process. Sticky
sessions are a violation of twelve-factor and should never be used
or relied upon.
33© 2015 Pivotal Software, Inc. All rights reserved.
Spring Session
Ÿ 일반적인 WAS 의 Clustering
– SESSION Replication-> Overhead
– 구성의 복잡
Ÿ HTTPSession 과 User 의 Object
들이 공존
– Session 이 차지하는 공간으로 인한
Heap 부족
34© 2015 Pivotal Software, Inc. All rights reserved.
Spring Session
Ÿ 플랫폼에 독립적인 세션 관리
Ÿ Annotation 기반에 쉬운 설정
Ÿ Persistence
Ÿ WebSocket 지원
Ÿ 지원하는 기술
– Redis
– Geode
– Hazelcast
35© 2015 Pivotal Software, Inc. All rights reserved.
Spring Session - @EnableGemFireHttpSession
36© 2015 Pivotal Software, Inc. All rights reserved.
Spring Session – Servlet Filter
출처 : http://www.slideshare.net/dgomezg/managing-users-data-with-spring-session
SpringCamp 2016 - Apache Geode 와 Spring Data Gemfire

Weitere ähnliche Inhalte

Was ist angesagt?

Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
DataWorks Summit
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
Dmitry Buzdin
 
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARNHadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
DataWorks Summit
 
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
VMware Tanzu
 

Was ist angesagt? (20)

Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
Next Generation Scheduling for YARN and K8s: For Hybrid Cloud/On-prem Environ...
 
Scale Out Your Big Data Apps: The Latest on Pivotal GemFire and GemFire XD
Scale Out Your Big Data Apps: The Latest on Pivotal GemFire and GemFire XDScale Out Your Big Data Apps: The Latest on Pivotal GemFire and GemFire XD
Scale Out Your Big Data Apps: The Latest on Pivotal GemFire and GemFire XD
 
ApexMeetup Geode - Talk1 2016-03-17
ApexMeetup Geode - Talk1 2016-03-17ApexMeetup Geode - Talk1 2016-03-17
ApexMeetup Geode - Talk1 2016-03-17
 
Using Apache Geode: Lessons Learned at Southwest Airlines
Using Apache Geode: Lessons Learned at Southwest AirlinesUsing Apache Geode: Lessons Learned at Southwest Airlines
Using Apache Geode: Lessons Learned at Southwest Airlines
 
Not all open source is the same
Not all open source is the sameNot all open source is the same
Not all open source is the same
 
GemFire In Memory Data Grid
GemFire In Memory Data GridGemFire In Memory Data Grid
GemFire In Memory Data Grid
 
YARN Containerized Services: Fading The Lines Between On-Prem And Cloud
YARN Containerized Services: Fading The Lines Between On-Prem And CloudYARN Containerized Services: Fading The Lines Between On-Prem And Cloud
YARN Containerized Services: Fading The Lines Between On-Prem And Cloud
 
How-To: Zero Downtime Migrations from Oracle to a Cloud-Native PostgreSQL
How-To: Zero Downtime Migrations from Oracle to a Cloud-Native PostgreSQLHow-To: Zero Downtime Migrations from Oracle to a Cloud-Native PostgreSQL
How-To: Zero Downtime Migrations from Oracle to a Cloud-Native PostgreSQL
 
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARNHadoop {Submarine} Project: Running Deep Learning Workloads on YARN
Hadoop {Submarine} Project: Running Deep Learning Workloads on YARN
 
Hive LLAP: A High Performance, Cost-effective Alternative to Traditional MPP ...
Hive LLAP: A High Performance, Cost-effective Alternative to Traditional MPP ...Hive LLAP: A High Performance, Cost-effective Alternative to Traditional MPP ...
Hive LLAP: A High Performance, Cost-effective Alternative to Traditional MPP ...
 
OLTP+OLAP=HTAP
 OLTP+OLAP=HTAP OLTP+OLAP=HTAP
OLTP+OLAP=HTAP
 
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
#GeodeSummit - Large Scale Fraud Detection using GemFire Integrated with Gree...
 
New Integration Options with Postgres Enterprise Manager 8.0
New Integration Options with Postgres Enterprise Manager 8.0New Integration Options with Postgres Enterprise Manager 8.0
New Integration Options with Postgres Enterprise Manager 8.0
 
Greenplum Kontained: Coordinating Many PostgreSQL Instances on Kubernetes: Cl...
Greenplum Kontained: Coordinating Many PostgreSQL Instances on Kubernetes: Cl...Greenplum Kontained: Coordinating Many PostgreSQL Instances on Kubernetes: Cl...
Greenplum Kontained: Coordinating Many PostgreSQL Instances on Kubernetes: Cl...
 
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
Slides for the Apache Geode Hands-on Meetup and Hackathon Announcement
 
Scaling Apache Pulsar to 10 PB/day
Scaling Apache Pulsar to 10 PB/dayScaling Apache Pulsar to 10 PB/day
Scaling Apache Pulsar to 10 PB/day
 
Geode Meetup Apachecon
Geode Meetup ApacheconGeode Meetup Apachecon
Geode Meetup Apachecon
 
Online Upgrade Using Logical Replication
 Online Upgrade Using Logical Replication Online Upgrade Using Logical Replication
Online Upgrade Using Logical Replication
 
How to Design for Database High Availability
How to Design for Database High AvailabilityHow to Design for Database High Availability
How to Design for Database High Availability
 
HBase coprocessors, Uses, Abuses, Solutions
HBase coprocessors, Uses, Abuses, SolutionsHBase coprocessors, Uses, Abuses, Solutions
HBase coprocessors, Uses, Abuses, Solutions
 

Andere mochten auch

GE healthcare
GE healthcareGE healthcare
GE healthcare
joessye
 
Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?
VMware Tanzu
 

Andere mochten auch (20)

Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...
 
ContainerCon 2015 - Be a Microservices Hero
ContainerCon 2015 - Be a Microservices HeroContainerCon 2015 - Be a Microservices Hero
ContainerCon 2015 - Be a Microservices Hero
 
Dropwizard Restful 微服務 (microservice) 初探 - JCConf TW 2014
Dropwizard Restful 微服務 (microservice) 初探 - JCConf TW 2014Dropwizard Restful 微服務 (microservice) 初探 - JCConf TW 2014
Dropwizard Restful 微服務 (microservice) 初探 - JCConf TW 2014
 
GE healthcare
GE healthcareGE healthcare
GE healthcare
 
Disruptors Don't Play By The Rules
Disruptors Don't Play By The RulesDisruptors Don't Play By The Rules
Disruptors Don't Play By The Rules
 
Pivotal Big Data Suite: A Technical Overview
Pivotal Big Data Suite: A Technical OverviewPivotal Big Data Suite: A Technical Overview
Pivotal Big Data Suite: A Technical Overview
 
Keys for Success from Streams to Queries
Keys for Success from Streams to QueriesKeys for Success from Streams to Queries
Keys for Success from Streams to Queries
 
Wall Street Derivative Risk Solutions Using Apache Geode
Wall Street Derivative Risk Solutions Using Apache GeodeWall Street Derivative Risk Solutions Using Apache Geode
Wall Street Derivative Risk Solutions Using Apache Geode
 
Driving Real Insights Through Data Science
Driving Real Insights Through Data ScienceDriving Real Insights Through Data Science
Driving Real Insights Through Data Science
 
Troubleshooting App Health and Performance with PCF Metrics 1.2
Troubleshooting App Health and Performance with PCF Metrics 1.2Troubleshooting App Health and Performance with PCF Metrics 1.2
Troubleshooting App Health and Performance with PCF Metrics 1.2
 
Why is my Hadoop* job slow?
Why is my Hadoop* job slow?Why is my Hadoop* job slow?
Why is my Hadoop* job slow?
 
Implementing Applications with SOA and Application Integration Architecture
Implementing Applications with SOA and Application Integration ArchitectureImplementing Applications with SOA and Application Integration Architecture
Implementing Applications with SOA and Application Integration Architecture
 
Improving Hadoop Resiliency and Operational Efficiency with EMC Isilon
Improving Hadoop Resiliency and Operational Efficiency with EMC IsilonImproving Hadoop Resiliency and Operational Efficiency with EMC Isilon
Improving Hadoop Resiliency and Operational Efficiency with EMC Isilon
 
Solving Performance Problems on Hadoop
Solving Performance Problems on HadoopSolving Performance Problems on Hadoop
Solving Performance Problems on Hadoop
 
Workload Automation + Hadoop?
Workload Automation + Hadoop?Workload Automation + Hadoop?
Workload Automation + Hadoop?
 
Digital Transformation (Implications for the CXO)
Digital Transformation (Implications for the CXO)Digital Transformation (Implications for the CXO)
Digital Transformation (Implications for the CXO)
 
SQL and Search with Spark in your browser
SQL and Search with Spark in your browserSQL and Search with Spark in your browser
SQL and Search with Spark in your browser
 
Pivotal Big Data Roadshow
Pivotal Big Data Roadshow Pivotal Big Data Roadshow
Pivotal Big Data Roadshow
 
Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?
 
Faster, Faster, Faster: The True Story of a Mobile Analytics Data Mart on Hive
Faster, Faster, Faster: The True Story of a Mobile Analytics Data Mart on HiveFaster, Faster, Faster: The True Story of a Mobile Analytics Data Mart on Hive
Faster, Faster, Faster: The True Story of a Mobile Analytics Data Mart on Hive
 

Ähnlich wie SpringCamp 2016 - Apache Geode 와 Spring Data Gemfire

Guiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise landGuiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise land
Dariusz Łuksza
 
PaaS on Openstack
PaaS on OpenstackPaaS on Openstack
PaaS on Openstack
Open Stack
 

Ähnlich wie SpringCamp 2016 - Apache Geode 와 Spring Data Gemfire (20)

Getting Started with Apache Geode
Getting Started with Apache GeodeGetting Started with Apache Geode
Getting Started with Apache Geode
 
#GeodeSummit - Spring Data GemFire API Current and Future
#GeodeSummit - Spring Data GemFire API Current and Future#GeodeSummit - Spring Data GemFire API Current and Future
#GeodeSummit - Spring Data GemFire API Current and Future
 
Building a Stock Prediction system with Machine Learning using Geode, SpringX...
Building a Stock Prediction system with Machine Learning using Geode, SpringX...Building a Stock Prediction system with Machine Learning using Geode, SpringX...
Building a Stock Prediction system with Machine Learning using Geode, SpringX...
 
CF Korea Meetup - Gemfire on PCF
CF Korea Meetup - Gemfire on PCF CF Korea Meetup - Gemfire on PCF
CF Korea Meetup - Gemfire on PCF
 
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
Gruter_TECHDAY_2014_03_ApacheTajo (in Korean)
 
Greenplum Database Open Source December 2015
Greenplum Database Open Source December 2015Greenplum Database Open Source December 2015
Greenplum Database Open Source December 2015
 
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
[db tech showcase Tokyo 2016] E34: Oracle SE - RAC, HA and Standby are Still ...
 
Rounds analytics pipeline
Rounds analytics pipelineRounds analytics pipeline
Rounds analytics pipeline
 
Apache Spark Introduction @ University College London
Apache Spark Introduction @ University College LondonApache Spark Introduction @ University College London
Apache Spark Introduction @ University College London
 
zData Inc. Big Data Consulting and Services - Overview and Summary
zData Inc. Big Data Consulting and Services - Overview and SummaryzData Inc. Big Data Consulting and Services - Overview and Summary
zData Inc. Big Data Consulting and Services - Overview and Summary
 
206450 primavera gateway
206450 primavera gateway206450 primavera gateway
206450 primavera gateway
 
OWF12/Java Moussine pouchkine Girard
OWF12/Java  Moussine pouchkine GirardOWF12/Java  Moussine pouchkine Girard
OWF12/Java Moussine pouchkine Girard
 
Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012Google AppEngine @Open World Forum 2012 - 12 oct.2012
Google AppEngine @Open World Forum 2012 - 12 oct.2012
 
Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...
Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...
Open Data Science Conference Big Data Infrastructure – Introduction to Hadoop...
 
Airflow - a data flow engine
Airflow - a data flow engineAirflow - a data flow engine
Airflow - a data flow engine
 
Guiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise landGuiding Diffy to the Enterprise land
Guiding Diffy to the Enterprise land
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and more
 
Spark forplainoldjavageeks svforum_20140724
Spark forplainoldjavageeks svforum_20140724Spark forplainoldjavageeks svforum_20140724
Spark forplainoldjavageeks svforum_20140724
 
Migrating from Oracle to Postgres
Migrating from Oracle to PostgresMigrating from Oracle to Postgres
Migrating from Oracle to Postgres
 
PaaS on Openstack
PaaS on OpenstackPaaS on Openstack
PaaS on Openstack
 

Mehr von Jay Lee (9)

Spring on Kubernetes
Spring on KubernetesSpring on Kubernetes
Spring on Kubernetes
 
Knative And Pivotal Function As a Service
Knative And Pivotal Function As a ServiceKnative And Pivotal Function As a Service
Knative And Pivotal Function As a Service
 
Knative and Riff
Knative and RiffKnative and Riff
Knative and Riff
 
Spring5 New Features
Spring5 New FeaturesSpring5 New Features
Spring5 New Features
 
Reactive Microservice And Spring5
Reactive Microservice And Spring5Reactive Microservice And Spring5
Reactive Microservice And Spring5
 
JavaEE6 - 설계 차원의 단순성
JavaEE6 - 설계 차원의 단순성JavaEE6 - 설계 차원의 단순성
JavaEE6 - 설계 차원의 단순성
 
Java8 - Oracle Korea Magazine
Java8 - Oracle Korea MagazineJava8 - Oracle Korea Magazine
Java8 - Oracle Korea Magazine
 
Java EE7
Java EE7Java EE7
Java EE7
 
Java 8 & Beyond
Java 8 & BeyondJava 8 & Beyond
Java 8 & Beyond
 

Kürzlich hochgeladen

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Christo Ananth
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 

Kürzlich hochgeladen (20)

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELLPVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
PVC VS. FIBERGLASS (FRP) GRAVITY SEWER - UNI BELL
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01Double rodded leveling 1 pdf activity 01
Double rodded leveling 1 pdf activity 01
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 

SpringCamp 2016 - Apache Geode 와 Spring Data Gemfire

  • 1.
  • 2. 2© 2015 Pivotal Software, Inc. All rights reserved. 2 Apache Geode 와 Spring 이창재 (jaylee@pivotal.io)| Pivotal | Advanced Platform Architects April, 2016
  • 3. 3© 2015 Pivotal Software, Inc. All rights reserved. Agenda Ÿ Apache Geode 소개 Ÿ Spring Data Gemfire Ÿ Spring Session Ÿ Demo
  • 4. 4© 2015 Pivotal Software, Inc. All rights reserved.
  • 5. 5© 2015 Pivotal Software, Inc. All rights reserved.
  • 6. 6© 2015 Pivotal Software, Inc. All rights reserved. Apache Geode 는? open source distributed, in- memory database for scale-out applications
  • 7. 7© 2015 Pivotal Software, Inc. All rights reserved. Geode 는? Ÿ 온라인으로 수평 확장이 가능한 고가용성 및 Low latency in- memory Data Grid Ÿ Key/Value (Map) Store (+ ααααααααα) Ÿ Open Source – 2015년 4월 Pivotal Gemfire 를 Apache 재단에 기증 – Project Geode – 2016년 4월 현재 1.0.0-M2
  • 8. 8© 2015 Pivotal Software, Inc. All rights reserved. Geode - In Memory Ÿ Data 를 메모리에 분산해서 저장 – JVM Heap – Off Heap 사용 가능(defragmentation) Ÿ Disk 에도 저장 가능 – Persistent Ÿ Eviction 과 Expiration 지원 – Least Recently Used 기반 Eviction – Time To Live 기반 Expiration
  • 9. 9© 2015 Pivotal Software, Inc. All rights reserved. Geode In-Memory 데이타 분산 VM 1 VM 2 VM 3
  • 10. 10© 2015 Pivotal Software, Inc. All rights reserved. Server 3Server 2 Bucket 3 *primary* Bucket 1 secondary Bucket 3 secondary Bucket 2 *primary* Server 1 Bucket 2 secondary Bucket 1 *primary* Geode In-Memory 데이타 분산 (Redundant = 1)
  • 11. 11© 2015 Pivotal Software, Inc. All rights reserved. Server 3Server 2 Bucket 3 *primary* Bucket 1 secondary Bucket 3 secondary Bucket 2 *primary* Server 1 Bucket 2 secondary Bucket 1 *primary* Geode In-Memory 데이타 분산 (Redundant = 1) Server 가 죽으면?
  • 12. 12© 2015 Pivotal Software, Inc. All rights reserved. Server 1 Server 3Server 2 Bucket 2 secondary Bucket 1 *primary* Bucket 3 *primary* Bucket 1 *primary* Bucket 3 secondary Bucket 2 *primary* Bucket 2 secondary Primary Failover Restore Redundancy Bucket 1 secondary Geode In-Memory 데이타 분산 (Redundant = 1)
  • 13. 13© 2015 Pivotal Software, Inc. All rights reserved. Geode – PARTITION REGION Ÿ REGION – Database 의 Table – 메모리에 분산되서 저장되는 java.util.Map Ÿ REDUNDANT 를 가지는 것과 안가지는 것(PARTITION, PARTITION_REDUNDANT) – REDUNDANT 즉 Backup 의 갯수는 지정 가능 – 0~3개 Ÿ Consistent Hashing – 기본 113 개의 Bucket Ÿ Map API 뿐만 아니라 SQL Query 도 지원
  • 14. 14© 2015 Pivotal Software, Inc. All rights reserved. Geode – Key/Value (Map) Store (+ ααααααααα) Ÿ In Memory Data Grid Ÿ Data Colocation – Master / Detail 형태의 data graph Ÿ Data Serialization (PDX) Ÿ FuctionService Ÿ JTA 호환 Transaction 출처 : http://s.hswstatic.com/gif/grid-computing-1.gif
  • 15. 15© 2015 Pivotal Software, Inc. All rights reserved. Geode – Key/Value (Map) Store (+ ααααααααα)
  • 16. 16© 2015 Pivotal Software, Inc. All rights reserved. Geode – Key/Value (Map) Store (+ ααααααααα)
  • 17. 17© 2015 Pivotal Software, Inc. All rights reserved. Gemfire vs Geode Ÿ Open Source Ÿ 상용 Support Ÿ 기능상의 차이 – WAN 상의 클러스터 복제 (M2 에 이미 포함) – Continuous Query (M2 에 이미 포함) – C++, C# 지원
  • 18. 18© 2015 Pivotal Software, Inc. All rights reserved. Demo Repo https://github.com/eggboy/springcamp2016geode https://github.com/eggboy/gemfiredemo
  • 19. 19© 2015 Pivotal Software, Inc. All rights reserved. Spring Data Gemfire
  • 20. 20© 2015 Pivotal Software, Inc. All rights reserved. Spring Data GemFire (SDG) Spring Data 의 강력하고 단순한 프로그래밍 모델을 이용하여 Apache Geode 이용가능. Spring Ecosystem Integration… – Spring Cache Abstraction / Transaction Management – Spring Data Commons + REST – Spring Integration (Inbound/Outbound Channel Adapters) – Spring Data Flow (Input Source and Sinks)
  • 21. 21© 2015 Pivotal Software, Inc. All rights reserved. Apache Geode combined with Spring Data GemFire can be used as JSR-107 (JCache) caching provider + +
  • 22. 22© 2015 Pivotal Software, Inc. All rights reserved. GRAILS Full-stack, Web Data Flow Stream, Taps, Jobs BOOT Bootable, Minimal, Ops-Ready Big, Fast, Flexible Data Web, Integration, Batch WEB Controllers, REST, WebSocket INTEGRATION Channels, Adapters, Filters, Transformers BATCH Jobs, Steps, Readers, Writers BIG DATA Ingestion, Export, Orchestration, Hadoop DATA NON-RELATIONALRELATIONAL CORE GROOVYFRAMEWORK SECURITY REACTOR
  • 23. 23© 2015 Pivotal Software, Inc. All rights reserved. Server 설정 Spring XML 기반 설정
  • 24. 24© 2015 Pivotal Software, Inc. All rights reserved. Client 설정 Spring XML 기반 설정
  • 25. 25© 2015 Pivotal Software, Inc. All rights reserved. with Spring Geode 서버 시작 @SpringBootApplication @ImportResource("/spring-data-gemfire-cache.xml") @EnableGemfireRepositories @EnableTransactionManagement public class SampleDataGemFireApplication { public static void main(String[] args) { SpringApplication.run(SampleDataGemFireApplication.class, args); } } 혹은… gfsh>start server –name=Example … --spring-xml-location=“spring-data-gemfire-cache.xml”
  • 26. 26© 2015 Pivotal Software, Inc. All rights reserved. GemfireRepository Repository 를 이용한 data 접근 public interface CustomerRepository extends GemfireRepository<Customer, Long> { } // Spring context.xml <gfe-data:repositories base-package="io.pivotal.springcamp.geode.repository" />
  • 27. 27© 2015 Pivotal Software, Inc. All rights reserved. GemfireTemplate GemfireTemplate 을 이용한 data 접근 Ÿ 가장 단순한 data 접근 방법 Ÿ Gemfire/Geode API 변경으로 부터 자유로움 Ÿ Exception 이 Spring DAO Exception 으로 변경 Ÿ Transaction <bean id="customerTemplate" class="org.springframework.data.gemfire.GemfireTemplate" p:region-ref="Customer" />
  • 28. 28© 2015 Pivotal Software, Inc. All rights reserved. Implementation Annotation-based Function Implementation/Execution package org.example.app.functions; import … @Component public class ExampleFunctions { @GemfireFunction public Customer update(…) { … } … } Example… (Optional)… <bean class=“org.example….ExampleFunctions”/>
  • 29. 29© 2015 Pivotal Software, Inc. All rights reserved. Execution Annotation-based Function Implementation/Execution package org.example.app.function.executions; import … @OnRegion(“Example”) public interface ExampleFunctionExecution { Customer update(…); } And… <gfe:annotation-driven/> <gfe-data:function-executions base-package="org.example.app.function.executions">
  • 30. 30© 2015 Pivotal Software, Inc. All rights reserved. JSR-107 (JCache), Spring Cache Abstraction Geode Caching Provider Ÿ With @Cacheable Ÿ And @CachePut, @CacheEvict(allEntries=[true|false]), @CacheConfig – http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#cache-jsr-107 Ÿ Or with JSR-107 using… – @CacheResult, @CachePut, @CacheRemove, @CacheRemoveAll, @CacheDefaults
  • 31. 31© 2015 Pivotal Software, Inc. All rights reserved. Spring Session 과 Geode
  • 32. 32© 2015 Pivotal Software, Inc. All rights reserved. 32 12factor App Manifesto - VI. Processes Twelve-factor processes are stateless and share-nothing. Some web systems rely on “sticky sessions” – that is, caching user session data in memory of the app’s process and expectingfuture requests from the same visitor to be routed to the same process. Sticky sessions are a violation of twelve-factor and should never be used or relied upon.
  • 33. 33© 2015 Pivotal Software, Inc. All rights reserved. Spring Session Ÿ 일반적인 WAS 의 Clustering – SESSION Replication-> Overhead – 구성의 복잡 Ÿ HTTPSession 과 User 의 Object 들이 공존 – Session 이 차지하는 공간으로 인한 Heap 부족
  • 34. 34© 2015 Pivotal Software, Inc. All rights reserved. Spring Session Ÿ 플랫폼에 독립적인 세션 관리 Ÿ Annotation 기반에 쉬운 설정 Ÿ Persistence Ÿ WebSocket 지원 Ÿ 지원하는 기술 – Redis – Geode – Hazelcast
  • 35. 35© 2015 Pivotal Software, Inc. All rights reserved. Spring Session - @EnableGemFireHttpSession
  • 36. 36© 2015 Pivotal Software, Inc. All rights reserved. Spring Session – Servlet Filter 출처 : http://www.slideshare.net/dgomezg/managing-users-data-with-spring-session